Tomcat+Nginx集群与负载均衡
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48272857
今天就和大家一起来实现Tomcat和nginx的集群与负载均衡
一、Tomcat 集群配置端口规划
注:该端口是在同一台机器上启动2个tomcat,需要修改一下端口不重复,如果一台机器只部署1个tomcat其端口可以一样。
序号 |
SHUTDOWN |
AJP |
http |
集群Receiver |
1 |
8005 |
8009 |
8080 |
5001 |
2 |
8015 |
8019 |
8081 |
5002 |
1、Tomcat 集群配置
在server.xml中修改:
将:<engine name="Catalina" defaulthost="localhost"></engine>
<engine name="Catalina" defaulthost="localhost" jvmroute="jvm1"> </engine>
其中 jvmRoute="jvm1" 在不同的tomcat中名称不一样。
在
<cluster classname="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelsendopti expiresessi notifylisteners></cluster> <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"></membership> <receiver classname="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto"> 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"></transport> </sender> <interceptor classname="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"></interceptor> <interceptor classname="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"></interceptor> </receiver></channel> <valve classname="org.apache.catalina.ha.tcp.ReplicationValve" filter=""></valve> <valve classname="org.apache.catalina.ha.session.JvmRouteBinderValve"></valve> <deployer classname="org.apache.catalina.ha.deploy.FarmWarDeployer" tempdir="/tmp/war-temp/" deploydir="/tmp/war-deploy/" watchdir="/tmp/war-listen/" watchenabled="false"></deployer> <clusterlistener classname="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"></clusterlistener> <clusterlistener classname="org.apache.catalina.ha.session.ClusterSessionListener"></clusterlistener>
注意在同一台机器上:Receiver 节点端口:port="5001"要不一样。
2、修改tomcat的web.xml
需要修改tomcat的web.xml配置参数才能真正实现session同步复制的设置
<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></distributable> (在倒数第二行增加这个代码才能实现session同步复制功能)
二、优化:
1、内存优化配置
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"
2)Linux
JAVA_OPTS = " -server -Xms512M -Xmx2048M -XX:MaxNewSize=256M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Djava.awt.headless=true"
2、其他优化配置:
1)加入如下配置1
<executor name="tomcatThreadPool" nameprefix="catalina-exec-" maxthreads="500" minsparethreads="50"></executor>
<connector port="8080" protocol="HTTP/1.1" c redirectport="8443"></connector>
<connector port="8080" executor="tomcatThreadPool" protocol="HTTP/1.1" c enablelookups="false" redirectport="8443"></connector>
<connector port="8009" protocol="AJP/1.3" redirectport="8443"></connector>
<connector port="8009" executor="tomcatThreadPool" c enablelookups="false" redirectport="8443" protocol="AJP/1.3"></connector>
2)或者
修改
<connector port="8080" protocol="HTTP/1.1" c redirectport="8443"></connector>
<connector port="8080" protocol="HTTP/1.1" maxthreads="500" acceptcount="50" c enablelookups="false" redirectport="8443"></connector>
<connector port="8009" protocol="AJP/1.3" redirectport="8443"></connector>
<connector port="8009" maxthreads="500" c enablelookups="false" redirectport="8443" protocol="AJP/1.3"></connector>
注:两者的主要区别是:executor被起用且关联时maxThreads="500" 被忽略。
3)几个属性解释:
- maxThreads
Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。 可以根据机器的时期性能和内存大小调整,一般可以在400-500。最大可以在800左右。
- acceptCount
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。
- minSpareThreads
Tomcat初始化时创建的线程数。默认值4。
- connnectionTimeout
网络连接超时,默认值20000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。(本系统由于与后台系统接口超时时间较长,使用设置为60000)
- enableLookups
是否反查域名,默认值为true。为了提高处理能力,应设置为false
- Executor节点
表示Tomcat组件之间共享的线程池。
- maxIdleTime
空闲线程被关闭之前的毫秒数。默认值是60000。
三、Nginx + Tomcat负载均衡配置
在配置文件/usr/local/nginx/conf/nginx.conf文件中新增以下代码
upstream tomcat { server 192.168.100.50:8080 weight=1; server 192.168.100.50:8081 weight=1; }
修改Server节点中location:
location / { root html; index index.html index.htm; }
location / { #root html; #index index.html index.htm; proxy_pass http://tomcat6; }
注意http://tomcat中tomcat名称与上面的配置一样。
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了Tomcat+Nginx集群与负载均衡,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pour déployer un projet JAR sur Tomcat, suivez ces étapes : Téléchargez et décompressez Tomcat. Configurez le fichier server.xml, définissez le port et le chemin de déploiement du projet. Copie le fichier JAR vers le chemin de déploiement spécifié. Démarrez Tomcat. Accédez au projet déployé à l'aide de l'URL fournie.

Pour permettre au serveur Tomcat d'accéder au réseau externe, vous devez : modifier le fichier de configuration Tomcat pour autoriser les connexions externes. Ajoutez une règle de pare-feu pour autoriser l'accès au port du serveur Tomcat. Créez un enregistrement DNS pointant le nom de domaine vers l'adresse IP publique du serveur Tomcat. Facultatif : utilisez un proxy inverse pour améliorer la sécurité et les performances. Facultatif : configurez HTTPS pour une sécurité accrue.

Répertoire d'installation de Tomcat : Chemin par défaut : Windows : C:\Program Files\Apache Software Foundation\Tomcat 9.0macOS:/Library/Tomcat/Tomcat 9.0Linux:/opt/tomcat/tomcat9 Chemin personnalisé : vous pouvez le spécifier lors de l'installation. Recherchez le répertoire d'installation : utilisez la commande Whereis ou Locate.

Pour déployer plusieurs projets via Tomcat, vous devez créer un répertoire webapp pour chaque projet puis : Déploiement automatique : Placez le répertoire webapp dans le répertoire webapps de Tomcat. Déploiement manuel : déployez manuellement le projet dans l'application de gestion de Tomcat. Une fois le projet déployé, il est accessible par son nom de déploiement, par exemple : http://localhost:8080/project1.

Comment vérifier le nombre de connexions Tomcat simultanées : Visitez la page Tomcat Manager (http://localhost:8080/manager/html) et entrez votre nom d'utilisateur et votre mot de passe. Cliquez sur Statut->Sessions dans la barre de navigation de gauche pour voir le nombre de connexions simultanées en haut de la page.

Le répertoire racine du site Web Tomcat se trouve dans le sous-répertoire webapps de Tomcat et est utilisé pour stocker les fichiers d'application Web, les ressources statiques et le répertoire WEB-INF. Il peut être trouvé en recherchant l'attribut docBase dans le fichier de configuration Tomcat.

Le numéro de port Tomcat peut être affiché en vérifiant l'attribut de port de l'élément <Connector> dans le fichier server.xml. Visitez l'interface de gestion Tomcat (http://localhost:8080/manager/html) et affichez l'onglet « Statut ». Exécutez "catalina.sh version" à partir de la ligne de commande et regardez la ligne "Port :".

L'exécution de projets avec différents numéros de port sur le serveur Tomcat nécessite les étapes suivantes : Modifiez le fichier server.xml et ajoutez un élément Connector pour définir le numéro de port. Ajoutez un élément Context pour définir l'application associée au numéro de port. Créez un fichier WAR et déployez-le dans le répertoire correspondant (webapps ou webapps/ROOT). Redémarrez Tomcat pour appliquer les modifications.
