Maison  >  Article  >  Opération et maintenance  >  Comment créer un serveur d'équilibrage de charge basé sur Centos7+Nginx+Tomcat8

Comment créer un serveur d'équilibrage de charge basé sur Centos7+Nginx+Tomcat8

WBOY
WBOYavant
2023-05-12 23:16:161268parcourir

Après avoir installé manuellement nginx, tout est normal et il n'y a aucun problème avec la configuration de l'hôte virtuel et l'équilibrage de charge. Il a été activé avec succès. Le fichier de configuration spécifique est le suivant :

Dans le fichier nginx.conf de conf, ajoutez : include vhost/*.conf pour introduire tous les fichiers .conf dans le répertoire vhost pour une configuration facile à l'avenir. Bien entendu, si nécessaire, vous pouvez les ajouter un par un.

Le service de chargement étant un service API, le nom du fichier de configuration ici s'appelle api.xxx.com.conf. La configuration d'ouverture du fichier est la suivante :

Comment créer un serveur déquilibrage de charge basé sur Centos7+Nginx+Tomcat8

Dans ce cas, la méthode d'interrogation IP. n'est pas utilisé, mais la méthode d'interrogation IP est utilisée. Pour les différences spécifiques entre ces méthodes, vous pouvez utiliser Baidu ou Google pour les introductions pertinentes. Il convient de noter que proxy_pass est configuré ici comme nom d'amont. Les autres ne sont pas autorisés à être utilisés. Si l'adresse IP est configurée directement, l'équilibrage de charge ne sera pas obtenu.

Le poids représenté par le poids, plus le nombre est grand, plus le poids est élevé, plus les chances d'allocation représentent le serveur de secours chaud, c'est-à-dire qu'en cas de problème avec les deux premières charges, le serveur de secours chaud. assumera automatiquement la responsabilité de ces visites.

La configuration du configurateur d'équilibrage de charge nginx est maintenant terminée, mais en raison de la charge impliquée, s'il s'agit d'une URL ordinaire, la perte de session se produira lors de l'accès. Par conséquent, à ce stade, le problème de perte de session doit être présent. Il existe plusieurs solutions à ce problème. L'une consiste à utiliser les cookies comme proxy et l'autre consiste à implémenter le partage de session. Pour implémenter le partage, les configurations appropriées doivent être effectuées dans Tomcat. Pour répondre à cette exigence, ici Le serveur partagé de session configuré est un service de mémoire Redis, principalement pour assurer une lecture et un stockage efficaces des données. Lorsque vous utilisez Redis pour le partage de session, vous devez ajouter les noms suivants :

Comment créer un serveur déquilibrage de charge basé sur Centos7+Nginx+Tomcat8Ces packages prennent en charge Tomcat8 sans aucune question : Concernant le statut de support spécifique des autres versions, aucun test pertinent n'a été effectué.

Modifiez ensuite le fichier de configuration dans tomcat :

Comment créer un serveur déquilibrage de charge basé sur Centos7+Nginx+Tomcat8

Les adresses de 10.0.0.x vues ici sont toutes complétées sur le réseau interne Le réseau externe n'est pas accessible Seul le serveur responsable de la charge est directement connecté. au réseau externe.

À ce stade, vous pouvez démarrer le serveur Tomcat et le serveur nginx en douceur, mais avant cela, vous devez d'abord démarrer le serveur nginx, sinon Tomcat risque de ne pas démarrer. Le service nginx peut être démarré en douceur

Les trois configurations sont les suivantes :

Le contenu de référence ajouté dans nginx.conf

include vhost/*.conf;

Configuration de l'équilibrage de charge :

upstream api.xxx.com {
 server 10.0.0.12:8080 weight=5;
 server 10.0.0.15:8081 weight=5 ;
 server 10.0.0.16:8080 weight=5 backup;
}
server {
 listen    80;
 server_name api.xxx.com;
 location /
  {
   proxy_set_header host $host;
   proxy_set_header x-real-ip $remote_addr;
   proxy_set_header x-forwarded-for $remote_addr;
   proxy_pass http://api.xxx.com;
    }
}

configuration Tomcat

<valve classname="com.radiadesign.catalina.session.redissessionhandlervalve" />
<manager classname="com.radiadesign.catalina.session.redissessionmanager" 
       host="10.0.0.16" 
       port="10000" 
       database="0" 
       maxinactiveinterval="60" />

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer