/nxj-prisonfive/E-office"path="/E-office"workDir="D:
/nxj-prisonfive/Tomcat/work2/E-office"/>
3.启动server1和server2
双击startserver1.bat和startserver2.bat,确保服务能够正常启动:
TomcatServer1:
TomcatSerer2:
Nginx配置
路径:
D:
\nginx-1.3.9,Nginx用的是破解版,安装过程不做介绍。
1.配置nginx.conf
路径:
D:
\nginx-1.3.9\conf
以下配置文件中各项参数介绍请参考文档《Nginx.conf详细讲解.doc》
#usernobody;
worker_processes2;#启动进程,通常设置成和cpu的数量相等
#error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
#pidlogs/nginx.pid;
events{
worker_connections2048;#单个后台workerprocess进程的最大并发链接数
}
http{
includemime.types;
default_typeapplication/octet-stream;
#log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'
#'$status$body_bytes_sent"$http_referer"'
#'"$http_user_agent""$http_x_forwarded_for"';
#access_loglogs/access.logmain;
access_logoff;
server_tokensoff;
sendfileon;
#tcp_nopushon;
#keepalive_timeout0;
keepalive_timeout120;
tcp_nodelayon;
#gzipon;
includegzip.conf;
includeproxy.conf;
#设定负载均衡的服务器列表,参考文档《Nginx的upstream目前支持的5中方式的分配》
upstreamtomcats{
ip_hash;
server172.20.15.44:
802weight=1;#weigth参数表示权值,权值越高被分配到的几率越大
server172.20.15.44:
803weight=2;
}
server{
listen80;
server_name17.20.15.44;
#includesit.conf;
location/{
#rootD:
/nxj-prisonfive/E-office;#定义服务器的默认网站根目录位置
#indexindex.jspindex.htmlindex.htm;#定义首页索引文件的名称
proxy_passhttp:
//tomcats;#请求转向localhost定义的服务器列表
}
#redirectservererrorpagestothestaticpage/50x.html
error_page500502503504/50x.html;
location=/50x.html{
roothtml;
}
}
}
2.配置proxy.conf
#设定请求缓冲
client_header_timeout3m;
client_body_timeout3m;
send_timeout60;
#以下是一些反向代理的配置可删除
proxy_redirectoff;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
client_max_body_size100m;#允许客户端请求的最大单文件字节数
client_body_buffer_size256k;#缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout300;#nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout300;#后端服务器数据回传时间(代理发送超时)
proxy_read_timeout300;#连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size256k;#设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers4256k;#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size256k;#高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size256k;#设定缓存文件夹大小,大于这个值,将从upstream服务器传
登录验证
1.启动服务端的server1和server2;
2.启动nginx服务;
3.通过多个PC机访问nginx服务,查看server1和server2是否分别响应了PC端的请求。
遗留问题:
1.upstream的分配方式
upstream默认的分配方式为轮询:
每个请求按时间顺序逐一分配到后台不同的服务端;
ip_hash:
每个请求按IP的hash结果分配,这个每个访客固定访问一个后台的服务端。
疑问:
部署过程中,当我们的默认方式为默认即轮询时,请求并未以轮询的方式访问后台服务端,而是同时访问了所有的服务端导致系统无法正常登录。
由于疑问没有解决,这里选择了ip_hash的分配方式。
2.权重值wegiht的大小分配
当两个服务端的weight值一样的时候,表示每个访客的请求访问到每个服务端的概率为50%;
参数设定如下:
upstreamtomcats{
ip_hash;
server172.20.15.44:
802weight=1;
server172.20.15.44:
803weight=2;
}
疑问1:
当服务端的两个server的权重值相同时,第一个server会响应所有访客的请求,第二个server则不会响应任何一个请求,为什么?
疑问2:
当第二个服务的weight的值为第一个服务的weightx2时,访客的请求访问每个服务端的概率为50%(此结果为验证估算结果),如以上参数设定所示,当第一个server的权重值为1时,第二个server的权重值为2,访客的请求才有可能被第二个server响应。