Comment implémenter des sessions persistantes via Nginx+Tomcat+Redis
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
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
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
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
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
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
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
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" />
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
Installer redis
yum install redisConfiguration du nœud maître Redis
vim /etc/redis.conf bind 0.0.0.0 # 监听所有ip port 6379 # 设定监听的端口 requirepass 123456 # 设定连接的密码
re dis Configuration du nœud esclave
Le nœud esclave est défini en lecture seulebind 0.0.0.0 # 监听所有ip
slaveof 172.18.68.31 6379 # 设定主节点的ip+端口
masterauth 123456 # 主节点的连接密码
slave-read-only yes # 从节点为只读
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
Configuration du serveur MySQL
Préparation avant l'installation
ntpdate 172.18.0.1
Installer mariadb
yum install mariadb # # #运行初始化脚本对mysql进行 cd /usr/local/mysql/bin mysql_secure_installation #mysql初始化脚本,以下为每一项的翻译 先回车 是否设置root密码 输入密码 确认密码 是否设置匿名用户 是否允许root远程登录 删除test数据库 现在是否生效
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.%
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 'slave_user'@'10.0.0.67' identified by '123456';
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.%
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:
Configurer le serveur esclave mysql
mysql > change master to master_host='10.0.0.66', master_user='slave_user', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=106;`
Afficher l'état de synchronisation activeAfficher 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
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!

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

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 !

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)

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

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? 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 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.

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)

É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".

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.

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
