Heim  >  Artikel  >  Datenbank  >  So implementieren Sie persistente Sitzungen über Nginx+Tomcat+Redis

So implementieren Sie persistente Sitzungen über Nginx+Tomcat+Redis

WBOY
WBOYnach vorne
2023-05-28 08:37:05802Durchsuche

Bereitstellungsumgebung

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

Erforderliche Pakete

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

Solo-Blog

So implementieren Sie persistente Sitzungen über Nginx+Tomcat+Redis

1. Nginx-Serverkonfiguration

Vorbereitung vor der Installation

ntpdate 172.18.0.1.
iptables -f

Installieren Sie Nginx.

Yum Install Nginx. Die Auslassungspunkte sind weitere Standardparameter. Wenn kein besonderer Bedarf besteht, drücken Sie einfach den Standard-Port. Überprüfen Sie beim Starten des Servers, ob Port 80 normal überwacht

2. Tomcat-Serverkonfiguration

Die Konfigurationen der beiden Tomcat-Server sind genau gleich. Wiederholen Sie die folgenden Schritte auf beiden Hosts.

Vorbereitung vor der Installation. ntpdate 172.18.0.1. iptables -f. Tomcat installieren. yum Tomcat installieren. Solo bereitstellen


Kopieren Sie den Krieg Paket in das Webapps-Verzeichnis kopieren und Tomcat neu starten Hier ist etwas schief gelaufen.

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

Solo für die Verbindung mit MySQL konfigurieren


Der h2-Laufzeitteil wird standardmäßig von Solo verwendet. Entfernen Sie nach dem manuellen Auskommentieren den MySQL-Laufzeitteil.
Legen Sie den Benutzernamen und das Passwort von MySQL fest und ändern Sie dann 172.18.68.41 in die IP-Adresse von MySQL (Haupt).

cp solo-2.4.1.war /usr/share/tomcat/webapps/
systemctl restart tomcat

Konfigurieren von Tomcat-Verbindungs-Reids

Tomcat-Verbindungs-Reids erfordert 3 Softwarepakete:

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

Download-Adresse

Kopieren Sie das erforderliche JAR-Paket nach /usr/share/tomcat/lib/

#### 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
Ändern Sie die .xml-Datei des Wettbewerbs und fügen Sie der Datei die folgenden zwei Zeilen hinzu.

IP ist die Redisip-Adresse und der Port ist der Port, auf dem Redis lauscht.

commons-pool2-2.2.jar
jedis-2.5.2.jar
tomcat-redis-session-manager-2.0.0.jar
. ein Master und ein Slave. Nur die Konfigurationsdateien sind unterschiedlich, die anderen Prozesse sind gleich.

Vorbereitung vor der Installation

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

Installieren Sie Redis.

yum install redis
re dis Slave-Knotenkonfiguration

Der Slave-Knoten ist auf schreibgeschützt eingestellt

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" />

Bestätigen Sie, dass die Master-Slave-Konfiguration erfolgreich ist

ntpdate 172.18.0.1
iptables -f

IV. MySQL-Serverkonfiguration

Es gibt zwei MySQL-Server, ein Master und ein Slave. Nur die Konfigurationsdateien sind unterschiedlich, die anderen Prozesse sind gleich. „Vorbereitung vor der Installation“ Die Synchronisierung muss aktiviert sein. Erstellen Sie dort Protokolle und ändern Sie Konfigurationsdateien Insgesamt sind es zwei Punkte.

1. Die Server-ID darf nicht in Konflikt geraten

2 Erstellen Sie einen autorisierten Benutzer auf dem Hauptserver, damit der Benutzer über Kopierberechtigungen verfügt.

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

Erstellen Sie einen autorisierten Benutzer in der Zeile des Master-Servers, damit der Slave-Server die Berechtigung hat, die Daten des Master-Servers zu kopieren. Autorisierte Benutzer sollten das Gesetz der geringsten Rechte einhalten. Je präziser die IP-Adressen sind, die für die Verbindung zugelassen sind, desto besser.

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


MySQL-Slave-Server-Konfiguration

MySQL-Master-Slave-Konfiguration unterscheidet sich nur in der Server-ID

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
Verbinden Sie sich vom Slave-Server aus mit der MySQL-Befehlszeilenkonfiguration, konfigurieren Sie die IP, den Benutzernamen und das Passwort des Master-Knotens . Die wichtigsten sind master_log_file und master_log_pos. Diese beiden Elemente sind die Ergebnisse der Abfrage auf dem Masterknoten und müssen mit den Abfrageergebnissen des Masterknotens übereinstimmen.

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


Konfigurieren Sie den MySQL-Slave-Server

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.%
Anzeigen des aktiven Synchronisierungsstatus

Anzeigen des Master-Slave-Synchronisierungsstatus im Slave-Server. Das Ja in den letzten beiden Zeilen zeigt an, dass die Master-Slave-Synchronisation erfolgreich war. Sie können den Master-Slave-Synchronisierungsstatus auch abfragen und überprüfen, indem Sie Tabellen, Bibliotheken und sogar Daten abfragen.

musql > grant replication slave on *.* to 
 &#39;slave_user&#39;@&#39;10.0.0.67&#39; identified by &#39;123456&#39;;
Bereitstellung abgeschlossen

Sie können auf den bereitgestellten Solo-Blog zugreifen, indem Sie über den Browser auf 172.18.68.11/solo-2.4 zugreifen. Wenn Sie ihn zum ersten Mal betreten, werden Sie aufgefordert, ein Benutzerkennwort zu registrieren, bei dem es sich um den Administrator handelt Kontopasswort.


Unabhängig davon, wie Nginx geplant ist, kann Tomcat die Sitzung des Clients in Redis speichern. Sie können die Redis-Verwaltungssoftware von windwos verwenden, um festzustellen, ob sowohl in der Redis-Master- als auch in der Slave-Datenbank Sitzungsinformationen vorhanden sind.


Das obige ist der detaillierte Inhalt vonSo implementieren Sie persistente Sitzungen über Nginx+Tomcat+Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen