Rumah >pangkalan data >Redis >Bagaimana untuk melaksanakan sesi berterusan melalui Nginx+Tomcat+Redis

Bagaimana untuk melaksanakan sesi berterusan melalui Nginx+Tomcat+Redis

WBOY
WBOYke hadapan
2023-05-28 08:37:05920semak imbas

Persekitaran penggunaan

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

Pakej yang diperlukan


commons-pool2-2.2.jar

jedis-2.5.2.jar

tomcat-redis-session- manager- 2.0.0.jar

blog solo


Bagaimana untuk melaksanakan sesi berterusan melalui Nginx+Tomcat+Redis

1 >

Persediaan sebelum pemasangan
ntpdate 172.18.0.1

iptables -f

Pasang nginx



yum pasang nginx

Ubah suai fail konfigurasi


upstream tomcatservers: Buat kumpulan pelayan belakang dan tambah

lokasi di dalam http: Padankan url dan tambahkan di dalam pelayan Nota: Elips adalah parameter lalai yang lain, hanya tekan lalai

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

Periksa port


<.>
Apabila memulakan pelayan, semak sama ada port 80 mendengar secara normal

ss -ntl

2 🎜>

Dua Konfigurasi pelayan tomcat adalah sama. Ulangi langkah berikut pada kedua-dua hos


Persediaan sebelum pemasangan

ntpdate 172.18.0.1iptables -f

Pasang tomcat

yum pasang tomcat



Kerahkan solo

.pakej perang disalin ke direktori webapps Mulakan semula tomcat selepas memuat turun, dan tomcat akan menyahmampat failnya secara automatik

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


Konfigurasikan solo

serverhost ialah nama domain atau IP pengimbangan beban bahagian hadapan, jika ia muncul selepas penggunaan selesai Apabila sumber statik tidak dapat dimuatkan, biasanya terdapat sesuatu yang tidak kena di sini.

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

Konfigurasikan solo untuk menyambung ke mysql

Bahagian masa jalan h2 digunakan secara solo secara lalai Selepas mengulasnya secara manual, nyahkomen bahagian masa jalan mysql .

Tetapkan nama pengguna dan kata laluan mysql, dan kemudian tukar 172.18.68.41 kepada alamat ip mysql (utama).

#### 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

Konfigurasikan reids sambungan tomcat

reids sambungan tomcat memerlukan 3 pakej perisian:


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

Alamat muat turun

Salin pakej jar yang diperlukan ke /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
Ubah suai fail contest.xml dan tambahkan dua baris berikut pada fail.

ip ialah alamat redisip, dan port ialah port yang redis dengar pada

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

Mulakan semula tomcat

systemctl restart tomcat


3. Konfigurasi pelayan Redis

Terdapat dua pelayan redis secara keseluruhan, satu tuan dan satu hamba. Hanya fail konfigurasi berbeza, proses lain adalah sama.


Persediaan sebelum pemasangan

ntpdate 172.18.0.1
iptables -f
Pasang redis

yum install redis

Konfigurasi nod induk Redis

Nod induk hanya mengkonfigurasi ip, port pendengaran dan kata laluan sambungan

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


konfigurasi nod hamba redis

Nod hamba ditetapkan kepada baca sahaja

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

Sahkan bahawa konfigurasi tuan-hamba berjaya

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
4. Konfigurasi pelayan MySQL

Terdapat dua pelayan mysql, satu induk dan satu hamba. Hanya fail konfigurasi berbeza, proses lain adalah sama.

Persediaan sebelum pemasangan

ntpdate 172.18.0.1iptables -f

Pasang mariadb

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

Konfigurasi pelayan induk MySQL



Penyegerakan induk-hamba mesti mendayakan log binari, dan terdapat dua perkara dalam mengubah suai fail konfigurasi.

1.server-id mestilah tidak bercanggah

2. Cipta pengguna yang dibenarkan pada pelayan utama untuk memberi kebenaran replikasi kepada pengguna.

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

Buat pengguna yang dibenarkan pada baris pelayan induk supaya pelayan hamba mempunyai kebenaran untuk menyalin data pelayan induk. Pengguna yang dibenarkan harus sepadan dengan undang-undang yang mempunyai keistimewaan yang paling rendah, dan lebih tepat alamat IP yang dibenarkan untuk disambungkan, lebih baik.

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


Konfigurasi pelayan hamba MySQL


Konfigurasi master-slave mySQL hanya berbeza dalam server-id

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

Apabila menyambung ke konfigurasi baris arahan pelayan hamba Mysql, konfigurasikan IP, nama pengguna dan kata laluan nod induk. Yang paling penting ialah master_log_file dan master_log_pos Kedua-dua item ini adalah hasil pertanyaan

pada nod induk, dan ia mestilah sama dengan hasil pertanyaan nod induk.

# 在mysql主服务器中查询结果
mariadb [(none)]> show master status\g;
*************************** 1. row ***************************
  file: master-log.000003
  position: 18893845
  binlog_do_db: 
  binlog_ignore_db:
Konfigurasikan pelayan hamba 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;`

Lihat status penyegerakan aktif

Lihat hamba induk dalam situasi Penyegerakan pelayan hamba. Ya dalam dua baris terakhir menunjukkan bahawa penyegerakan tuan-hamba berjaya. Anda juga boleh bertanya dan mengesahkan status penyegerakan induk-hamba dengan menanyakan jadual, perpustakaan dan juga data.

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
Pengerahan selesai

Anda boleh mengakses blog solo yang digunakan dengan mengakses 172.18.68.11/solo-2.4 melalui penyemak imbas Apabila anda masuk buat kali pertama, anda akan ditanya untuk mendaftarkan kata laluan pengguna, iaitu kata laluan akaun.

Pada ketika ini, tidak kira bagaimana nginx dijadualkan, tomcat boleh menyimpan sesi klien dalam redis. Anda boleh menggunakan perisian pengurusan redis windwos untuk melihat bahawa terdapat maklumat sesi dalam kedua-dua pangkalan data redis master dan slave.


Atas ialah kandungan terperinci Bagaimana untuk melaksanakan sesi berterusan melalui Nginx+Tomcat+Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam