Tomcat+Nginx集群部署.docx

上传人:b****5 文档编号:12213396 上传时间:2023-04-17 格式:DOCX 页数:12 大小:68.55KB
下载 相关 举报
Tomcat+Nginx集群部署.docx_第1页
第1页 / 共12页
Tomcat+Nginx集群部署.docx_第2页
第2页 / 共12页
Tomcat+Nginx集群部署.docx_第3页
第3页 / 共12页
Tomcat+Nginx集群部署.docx_第4页
第4页 / 共12页
Tomcat+Nginx集群部署.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Tomcat+Nginx集群部署.docx

《Tomcat+Nginx集群部署.docx》由会员分享,可在线阅读,更多相关《Tomcat+Nginx集群部署.docx(12页珍藏版)》请在冰豆网上搜索。

Tomcat+Nginx集群部署.docx

Tomcat+Nginx集群部署

 

Tomcat+Nginx集群部署

版本(v0.1)

 

张五泉

 

部署环境

Windowserver2003;

Nginx-1.3.9;

Tomcat4.0;

部署规划

Nginx172.20.15.44端口:

80;

TomcatServer1172.20.15.44端口:

802;

TomcatServer2172.20.15.44端口:

803;

客户端访问172.20.15.44,Nginx将客户端请求随机分发给应用服务Server1/Server2,由应用服务端处理客户的请求。

背景介绍

本次部署以第五监狱应用部署为例。

应用部署路径为:

D:

\nxj-prisonfive;

JDK采用1.4版本,配置路径:

D:

\j2sdk1.4.2_12;

tomcat为4.0版本,应用路径:

D:

\nxj-tomcat;

Tomcat配置

1.配置TomcatServer1

配置startserver1.bat(红色字体部分);

路径:

D:

\nxj-prisonfive;

@echooff

@titleTomcatServer1

setlocal

setJAVA_HOME=%D:

\j2sdk1.4.2_12%

setCATALINA_HOME=D:

\nxj-tomcat

setCATALINA_BASE=%CATALINA_HOME%

remif%JAVA_HOME%==""(echo请设置环境变量JAVA_HOME&pause;&exit)

remif%CATALINA_HOME%==""(echo请设置环境变量CATALINA_HOME&pause;&exit)

setNXJ_HOME=D:

\nxj-prisonfive

setOFBIZ_HOME=%NXJ_HOME%\E-office

setJAVA_OPTS=-Xms512m-Xmx1024m

setCATALINA_OPTS=-Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%"-Djava.endorsed.dirs="%CATALINA_HOME%\bin;%CATALINA_HOME%\common\endorsed"-Dofbiz.home=%OFBIZ_HOME%-Dmerlin.dir=%NXJ_HOME%

setCLASS_PATH=%CLASS_PATH%;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar

setSERVER_XML=%NXJ_HOME%\Tomcat\conf\server8080.xml

setSTART_CLASS=org.apache.catalina.startup.Bootstrap

setSTART_MOD=start

echo%JAVA_HOME%\bin\java%JAVA_OPTS%%CATALINA_OPTS%-classpath%CLASS_PATH%-Djava.io.tmpdir="%CATALINA_HOME%\temp"%START_CLASS%%START_MOD%-config%SERVER_XML%

%JAVA_HOME%\bin\java%JAVA_OPTS%%CATALINA_OPTS%-classpath%CLASS_PATH%-Djava.io.tmpdir="%CATALINA_HOME%\temp"%START_CLASS%%START_MOD%-config%SERVER_XML%

配置server8080.xml(红色字体部分);

路径:

D:

\nxj-prisonfive\Tomcat\conf

操作:

1,修改所有的端口,并确保所修改端口不会与系统已使用端口发生冲突;

2,根据实际情况配置应用路径及缓存文件work1的路径;

className="org.apache.catalina.connector.http.HttpConnector"

connectionTimeout="60000"debug="0"maxProcessors="500"

minProcessors="50"port="802"/>

className="org.apache.catalina.connector.http.HttpConnector"

port="8462"minProcessors="5"maxProcessors="75"

enableLookups="true"

debug="0"scheme="https"secure="true">

clientAuth="true"protocol="TLS"

keystoreFile="D:

\nxj-prisonfive\E-office\servercert\server_keystore"

keystorePass="newpass"/>

\nxj-prisonfive\Tomcat\conf"debug="0"

name="localhost"unpackWARs="false"autoDeploy="true">

/nxj-prisonfive/defaultroot"path=""workDir="D:

/nxj-prisonfive/Tomcat/work1"/>

/nxj-prisonfive/E-office"path="/E-office"workDir="D:

/nxj-prisonfive/Tomcat/work1/E-office"/>

2.配置TomcatServer2

配置startserver2.bat(红色字体部分);

路径:

D:

\nxj-prisonfive;

注:

需要特别注意的地方:

setSERVER_XML=%NXJ_HOME%\Tomcat\conf\server8081.xml

如果没有startserver2.bat,请新建一个,配置文件如下,

@echooff

@titleTomcatServer2

setlocal

setJAVA_HOME=%D:

\j2sdk1.4.2_12%

setCATALINA_HOME=D:

\nxj-tomcat

setCATALINA_BASE=%CATALINA_HOME%

remif%JAVA_HOME%==""(echo请设置环境变量JAVA_HOME&pause;&exit)

remif%CATALINA_HOME%==""(echo请设置环境变量CATALINA_HOME&pause;&exit)

setNXJ_HOME=D:

\nxj-prisonfive

setOFBIZ_HOME=%NXJ_HOME%\E-office

setJAVA_OPTS=-Xms512m-Xmx1024m

setCATALINA_OPTS=-Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%"-Djava.endorsed.dirs="%CATALINA_HOME%\bin;%CATALINA_HOME%\common\endorsed"-Dofbiz.home=%OFBIZ_HOME%-Dmerlin.dir=%NXJ_HOME%

setCLASS_PATH=%CLASS_PATH%;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar

setSERVER_XML=%NXJ_HOME%\Tomcat\conf\server8081.xml

setSTART_CLASS=org.apache.catalina.startup.Bootstrap

setSTART_MOD=start

echo%JAVA_HOME%\bin\java%JAVA_OPTS%%CATALINA_OPTS%-classpath%CLASS_PATH%-Djava.io.tmpdir="%CATALINA_HOME%\temp"%START_CLASS%%START_MOD%-config%SERVER_XML%

%JAVA_HOME%\bin\java%JAVA_OPTS%%CATALINA_OPTS%-classpath%CLASS_PATH%-Djava.io.tmpdir="%CATALINA_HOME%\temp"%START_CLASS%%START_MOD%-config%SERVER_XML%

配置server8081.xml(红色字体部分);

路径:

D:

\nxj-prisonfive\Tomcat\conf

操作:

1,修改所有的端口,确保所有端口不会与Server1发生冲突;

2,根据实际情况配置应用路径及缓存文件work2的路径;

className="org.apache.catalina.connector.http.HttpConnector"

connectionTimeout="60000"debug="0"maxProcessors="500"

minProcessors="50"port="803"/>

className="org.apache.catalina.connector.http.HttpConnector"

port="8461"minProcessors="5"maxProcessors="75"

enableLookups="true"

debug="0"scheme="https"secure="true">

clientAuth="true"protocol="TLS"

keystoreFile="D:

\nxj-prisonfive\E-office\servercert\server_keystore"

keystorePass="newpass"/>

\nxj-prisonfive\Tomcat\conf"debug="0"

name="localhost"unpackWARs="false"autoDeploy="true">

/nxj-prisonfive/defaultroot"path=""workDir="D:

/nxj-prisonfive/Tomcat/work2"/>

/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响应。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1