Maison >base de données >Redis >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=druidConfigurer 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
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
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" />
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.%
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.%
# 在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;`
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: yesDéploiement terminé
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!