Maison base de données Redis Comment implémenter des sessions persistantes via Nginx+Tomcat+Redis

Comment implémenter des sessions persistantes via Nginx+Tomcat+Redis

May 28, 2023 am 08:37 AM
redis nginx tomcat

Environnement de déploiement

centos7
nginx1.10.2
tomcat7.0
redis3.2.3
mariadb 5.5.44

Paquets requis

commons-pool2-2. 2. pot
jedis-2.5. jar
tomcat-redis-session-manager-2.0.0.jar

solo blog

Comment implémenter des sessions persistantes via Nginx+Tomcat+Redis

1. configuration du serveur nginx

préparation avant l'installation

ntpdate 172.18.0.1
iptables -f

Installez nginx

yum install nginx

Modifiez le fichier de configuration

serveurs Tomcat en amont : créez un groupe de serveurs backend, ajoutez-le à l'intérieur de http
emplacement : faites correspondre l'URL, ajoutez-le à l'intérieur du serveur
Remarque : Les points de suspension sont d'autres paramètres par défaut. S'il n'y a pas de besoin particulier, appuyez simplement sur la valeur par défaut

vim /etc/nginx/nginx.conf
http {
...
upstream tomcatservers {
 server 172.18.68.21:8080;
 server 172.18.68.22:8080;
 }
...
server {
...
 location / {
  proxy_pass http://tomcatservers;
  }
...
}
}
systemctl start nginx
Copier après la connexion

Vérifiez le port

Lors du démarrage du serveur, vous devez vérifier si le port 80 écoute normalement

ss -ntl.

2. Configuration du serveur Tomcat

Les configurations des deux serveurs Tomcat sont exactement les mêmes. Répétez les étapes suivantes sur les deux hôtes :

Copiez la guerre. package dans le répertoire webapps et redémarrez Tomcat décompressera automatiquement ses fichiers

cp solo-2.4.1.war /usr/share/tomcat/webapps/
systemctl restart tomcat
Copier après la connexion

Configurez solo

serverhost comme nom de domaine ou IP de l'équilibrage de charge frontal Si les ressources statiques ne peuvent pas être chargées après le déploiement, la plupart. Quelque chose s'est mal passé ici.

cd /usr/share/tomcat/webapps/solo-2.4/web-inf/classes
vim latke.properties
 #### server ####
 # 配置协议
 serverscheme=http
 # 配置客户端访问站点时的域名或ip,也就是前端nginx的域名
 serverhost=www.shuaiguoxia.com
 # 使用的端口
 serverport=80
Copier après la connexion

Configurer solo pour se connecter à mysql


La partie d'exécution h2 est utilisée par solo par défaut Après l'avoir commentée manuellement, décommentez la partie d'exécution mysql.
Définissez le nom d'utilisateur et le mot de passe de MySQL, puis remplacez 172.18.68.41 par l'adresse IP de MySQL (principale).

#### h2 runtime ####
#runtimedatabase=h2
#jdbc.username=root
#jdbc.password=
#jdbc.driver=org.h2.driver
#jdbc.url=jdbc:h2:~/solo_h2/db
#jdbc.pool=h2
#
#### mysql runtime ####
runtimedatabase=mysql
jdbc.username=root      # 用户名
jdbc.password=123456     # 密码
jdbc.driver=com.mysql.jdbc.driver
jdbc.url=jdbc:mysql://172.18.68.41:3306/solo?useunicode=yes&characterencoding=utf8
jdbc.pool=druid
Copier après la connexion

Configurer les reids de connexion Tomcat

Les reids de connexion Tomcat nécessitent 3 packages logiciels :

commons-pool2-2.2.jar
jedis-2.5.2.jar
tomcat-redis-session-manager-2.0.0.jar
Copier après la connexion

Adresse de téléchargement

Copiez le package jar requis dans /usr/share/tomcat/lib/

cp commons-pool2-2.2.jar /usr/share/tomcat/lib/
cp jedis-2.5.2.jar
cp tomcat-redis-session-manager-2.0.0.jar
Copier après la connexion
Modifier le fichier .xml du concours et ajoutez les deux lignes suivantes au fichier.

ip est l'adresse redisip, et le port est le port sur lequel redis écoute

vim /etc/tomcat/context.xml
#
 <valve classname="com.orangefunction.tomcat.redissessions.redissessionhandlervalve" />
 <manager classname="com.orangefunction.tomcat.redissessions.redissessionmanager" 
 host="172.18.68.31" 
 port="6379" 
 database="0" 
 maxinactiveinterval="60" />
Copier après la connexion

Restart tomcat

systemctl restart tomcat


3 Configuration du serveur Redis

Il y a deux serveurs Redis, un maître et un esclave. Seuls les fichiers de configuration sont différents, les autres processus sont les mêmes.


Préparation avant l'installation

ntpdate 172.18.0.1
iptables -f
Copier après la connexion

Installer redis

yum install redis


Configuration du nœud maître Redis

Le nœud maître configure uniquement l'IP, le port d'écoute et le mot de passe de connexion

vim /etc/redis.conf
bind 0.0.0.0       # 监听所有ip
port 6379        # 设定监听的端口
requirepass 123456      # 设定连接的密码
Copier après la connexion

re dis Configuration du nœud esclave

Le nœud esclave est défini en lecture seule

bind 0.0.0.0       # 监听所有ip
slaveof 172.18.68.31 6379    # 设定主节点的ip+端口
masterauth 123456      # 主节点的连接密码
slave-read-only yes      # 从节点为只读
Copier après la connexion

Confirmez que la configuration maître-esclave est réussie


shell > redis-cli -h 172.18.68.32  # 连接从服务器redis
127.0.0.1:6379> info replication   # 查看主从复制状态信息
# replication
role:slave
master_host:172.18.68.31     # 主节点ip
master_port:6379       # 主节点的端口
master_link_status:up     # up为主从同步正常
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_repl_offset:1420
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
Copier après la connexion

Configuration du serveur MySQL

Il existe deux serveurs MySQL, un maître et un esclave. Seuls les fichiers de configuration sont différents, les autres processus sont les mêmes.

Préparation avant l'installation
ntpdate 172.18.0.1

iptables -f

Installer mariadb

yum install mariadb
#
#
#运行初始化脚本对mysql进行
cd /usr/local/mysql/bin
mysql_secure_installation   #mysql初始化脚本,以下为每一项的翻译
 先回车
 是否设置root密码
 输入密码
 确认密码
 是否设置匿名用户
 是否允许root远程登录
 删除test数据库
 现在是否生效
Copier après la connexion

Configuration du serveur maître MySQL

La synchronisation maître-esclave doit être activée logs et modifier les fichiers de configuration sont deux points au total.

1. L'identifiant du serveur ne doit pas entrer en conflit

2. Créez un utilisateur autorisé sur le serveur principal pour permettre à l'utilisateur d'avoir des autorisations de copie.

shell > vim /etc/my.cnf
server-id=1           #节点id
log-bin=mysql-bin         #指定二进制日志前缀
relay-log=mysql-relay-bin       #指定relaylog日志前缀
replicate-wild-ignore-table=mysql.%     #排除要复制的表
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
Copier après la connexion

Créez un utilisateur autorisé sur la ligne du serveur maître afin que le serveur esclave ait la permission de copier les données du serveur maître. Les utilisateurs autorisés doivent respecter la loi du moindre privilège, et plus les adresses IP autorisées à se connecter sont précises, mieux c'est.

musql > grant replication slave on *.* to 
 &#39;slave_user&#39;@&#39;10.0.0.67&#39; identified by &#39;123456&#39;;
Copier après la connexion

Configuration du serveur esclave mysql

La configuration maître-esclave de mysql n'est différente que par l'identifiant du serveur

shell > vim /etc/my.cnf
server-id=2           #节点id
log-bin=mysql-bin         #指定二进制日志前缀
relay-log=mysql-relay-bin       #指定relaylog日志前缀
replicate-wild-ignore-table=mysql.%     #排除要复制的表
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
Copier après la connexion

Connectez la configuration de ligne de commande mysql au serveur esclave et configurez l'adresse IP, le nom d'utilisateur et le mot de passe du maître nœud. Les plus importants sont master_log_file et master_log_pos. Ces deux éléments sont les résultats d'une requête sur le nœud maître et ils doivent être identiques aux résultats de la requête du nœud maître.

# 在mysql主服务器中查询结果
mariadb [(none)]> show master status\g;
*************************** 1. row ***************************
  file: master-log.000003
  position: 18893845
  binlog_do_db: 
  binlog_ignore_db:
Copier après la connexion


Configurer le serveur esclave mysql

mysql > change master to 
master_host=&#39;10.0.0.66&#39;,
master_user=&#39;slave_user&#39;,
master_password=&#39;123456&#39;,
master_log_file=&#39;mysql-bin.000001&#39;,
master_log_pos=106;`
Copier après la connexion

Afficher l'état de synchronisation active

Afficher l'état de synchronisation maître-esclave sur le serveur esclave. Le oui dans les deux dernières lignes indique que la synchronisation maître-esclave a réussi. Vous pouvez également interroger et vérifier l'état de synchronisation maître-esclave en interrogeant des tables, des bibliothèques et même des données.

mariadb [(none)]> show slave status\g;
*************************** 1. row ***************************
   slave_io_state: waiting for master to send event
    master_host: 172.18.68.41
    master_user: slave-user
    master_port: 3306
   connect_retry: 60
   master_log_file: master-log.000002
  read_master_log_pos: 245
   relay_log_file: mysql-relay-bin.000002
   relay_log_pos: 530
 relay_master_log_file: master-log.000002
   slave_io_running: yes
  slave_sql_running: yes
Copier après la connexion
Déploiement terminé
Vous pouvez accéder au blog solo déployé en accédant au 172.18.68.11/solo-2.4 via le navigateur Lorsque vous entrez pour la première fois, il vous sera demandé d'enregistrer un mot de passe utilisateur, qui est l'administrateur. mot de passe du compte.

Peu importe la façon dont nginx est planifié, Tomcat peut enregistrer la session du client dans Redis. Vous pouvez utiliser le logiciel de gestion Redis de Windwos pour voir qu'il existe des informations de session dans les bases de données Redis maître et esclave.

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment démarrer le serveur Nginx Comment démarrer le serveur Nginx Apr 14, 2025 pm 12:27 PM

Le démarrage d'un serveur Nginx nécessite différentes étapes en fonction des différents systèmes d'exploitation: Système Linux / Unix: Installez le package NGINX (par exemple, en utilisant Apt-Get ou Yum). Utilisez SystemCTL pour démarrer un service NGINX (par exemple, sudo systemctl start nginx). Système Windows: téléchargez et installez les fichiers binaires Windows. Démarrer Nginx à l'aide de l'exécutable Nginx.exe (par exemple, nginx.exe -c conf \ nginx.conf). Peu importe le système d'exploitation que vous utilisez, vous pouvez accéder au serveur IP

Comment vérifier le nom du conteneur Docker Comment vérifier le nom du conteneur Docker Apr 15, 2025 pm 12:21 PM

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Comment configurer Nginx dans Windows Comment configurer Nginx dans Windows Apr 14, 2025 pm 12:57 PM

Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

Comment vérifier si Nginx est démarré Comment vérifier si Nginx est démarré Apr 14, 2025 pm 01:03 PM

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Comment configurer le temps d'exécution du script LUA dans Centos Redis Comment configurer le temps d'exécution du script LUA dans Centos Redis Apr 14, 2025 pm 02:12 PM

Sur CentOS Systems, vous pouvez limiter le temps d'exécution des scripts LUA en modifiant les fichiers de configuration Redis ou en utilisant des commandes Redis pour empêcher les scripts malveillants de consommer trop de ressources. Méthode 1: Modifiez le fichier de configuration Redis et localisez le fichier de configuration Redis: le fichier de configuration redis est généralement situé dans /etc/redis/redis.conf. Edit Fichier de configuration: Ouvrez le fichier de configuration à l'aide d'un éditeur de texte (tel que VI ou NANO): Sudovi / etc / redis / redis.conf Définissez le délai d'exécution du script LUA: Ajouter ou modifier les lignes suivantes dans le fichier de configuration pour définir le temps d'exécution maximal du script LUA (unité: millisecondes)

Comment démarrer un conteneur par Docker Comment démarrer un conteneur par Docker Apr 15, 2025 pm 12:27 PM

Étapes de démarrage du conteneur Docker: Tirez l'image du conteneur: Exécutez "Docker Pull [Mirror Name]". Créer un conteneur: utilisez "Docker Create [Options] [Mirror Name] [Commandes et paramètres]". Démarrez le conteneur: exécutez "docker start [nom de conteneur ou id]". Vérifiez l'état du conteneur: vérifiez que le conteneur s'exécute avec "Docker PS".

Comment exécuter nginx apache Comment exécuter nginx apache Apr 14, 2025 pm 12:33 PM

Pour faire en sorte que Nginx exécute Apache, vous devez: 1. Installez Nginx et Apache; 2. Configurer l'agent Nginx; 3. Démarrer Nginx et Apache; 4. Testez la configuration pour vous assurer que vous pouvez voir le contenu Apache après avoir accédé au nom de domaine. De plus, vous devez faire attention à d'autres questions telles que la correspondance du numéro de port, la configuration de l'hôte virtuel et les paramètres SSL / TLS.

Comment installer Redis dans CentOS7 Comment installer Redis dans CentOS7 Apr 14, 2025 pm 08:21 PM

Téléchargez le package de code source à partir de la source Redis officielle pour le compiler et l'installer pour assurer la version la plus récente et stable et peut être personnalisée de manière personnalisée. Les étapes spécifiques sont les suivantes: Mettez à jour la liste des packages logiciels et créez le répertoire redis Télécharger Reded Code source Package Décompressez le package de code source et compilez la configuration d'installation et modifiez la configuration redis pour démarrer Redis vérifiez l'état de démarrage

See all articles