ホームページ >バックエンド開発 >PHPチュートリアル >Tomcat+Nginx クラスターと負荷分散
転載する場合は出典を明記してください: http://blog.csdn.net/l1028386804/article/details/48272857
今日は、Tomcat と nginx のクラスタリングと負荷分散を実装するために協力します
1. Tomcatクラスター構成 ポートの計画
注: このポートは、同じマシン上で 2 つの Tomcat を起動するために使用されます。マシンが 1 つの Tomcat のみをデプロイする場合は、そのポートを同じにする必要があります。
シリアル番号 |
シャットダウン |
AJP |
http |
クラスターレシーバー |
1 |
8005 |
8009 |
8080 |
5001 |
2 |
8015 |
8019 |
8081 |
5002 |
server.xml を変更します。
は:<Engine name="Catalina" defaultHost="localhost">は次のように変更されます:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
jvmRoute="jvm1" は Tomcat ごとに異なる名前を持ちます。
次のコンテンツを
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOpti <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessi notifyListeners/> <Channel className="org.apache.catalina.tribes.group.GroupChannel"> <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/> <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" <!--可写你自己的ip地址--> port="5001" autoBind="100" selectorTimeout="5000" maxThreads="6"/> <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> </Sender> <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> </Channel> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster>
同じマシン上にあることに注意してください: 受信ノード ポート: port="5001" そうでなければ同じです。
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <distributable /> (在倒数第二行增加这个代码才能实现session同步复制功能) </web-app>2. メモリ最適化構成。
1) Windows:
set JAVA_OPTS = " -server -Xms512M -Xmx2048M -XX:MaxNewSize=256M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Djava.awt.headless=true"
JAVA_OPTS = " -server -Xms512M -Xmx2048M -XX:MaxNewSize=256M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Djava.awt.headless=true"
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" />を追加して、
<Connector port="8080" protocol="HTTP/1.1" c redirectPort="8443" />を
<Connector port="8080" executor="tomcatThreadPool" protocol="HTTP/1.1" c enableLookups="false" redirectPort="8443" />に変更します:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />から
<Connector port="8009" executor="tomcatThreadPool" c enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<Connector port="8080" protocol="HTTP/1.1" c redirectPort="8443" />は
<Connector port="8080" protocol="HTTP/1.1" maxThreads="500" acceptCount="50" c enableLookups="false" redirectPort="8443" />変更されます
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />は
<Connector port="8009" maxThreads="500" c enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />注: 2 つの主な違いは次のとおりです: executor が有効で関連付けられている場合、maxThreads="500" は無視されます。
acceptCount
minSpareThreads
connnectionTimeout
enableLookups
Executor ノード
maxIdleTime
設定ファイル /usr/local/nginx/conf/nginx.conf ファイルに次のコードを追加します
upstream tomcat { server 192.168.100.50:8080 weight=1; server 192.168.100.50:8081 weight=1; }Tomcat 名は任意です。IP アドレスとアドレスに注意してください。ポート。 サーバーノードの場所を変更します。
location / { root html; index index.html index.htm; }は
location / { #root html; #index index.html index.htm; proxy_pass http://tomcat6; }