배포 환경
centos7
nginx1.10.2
tomcat7.0
redis3.2.3
mariadb 5.5.44
필수 패키지
commons-pool2-2.2 .jar
jedis-2.5. jar
tomcat-redis-session-manager-2.0.0.jar
솔로 블로그
1. nginx 서버 구성
설치 전 준비
ntpdate 172.18.0.1
iptables -f
Install nginx
yum install nginx
구성 파일 수정
upstream tomcatservers: 백엔드 서버 그룹을 만들고 http
안에 추가합니다. 위치: URL과 일치하고 서버 안에 추가합니다
참고: 생략 부호는 다른 기본 매개 변수입니다. 특별한 필요가 없으면 기본값을 누르십시오.
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
포트를 확인하세요
서버를 시작할 때 포트 80이 정상적으로 수신되는지 확인해야 합니다
ss -ntl
2. Tomcat 서버 구성
두 Tomcat 서버의 구성은 완전히 동일합니다. 두 호스트 모두에서 다음 단계를 반복하세요
설치 전 준비
ntpdate 172.18.0.1
iptables -f
Tomcat 설치
yum install tomcat
Deploy
전쟁을 복사하세요. webapps 디렉토리에 패키지를 추가하고 Tomcat을 다시 시작합니다. Tomcat은 자동으로 해당 파일의 압축을 풉니다
cp solo-2.4.1.war /usr/share/tomcat/webapps/ systemctl restart tomcatsolo
serverhost를 프런트 엔드 로드 밸런싱의 도메인 이름 또는 IP로 구성합니다. 배포 후 정적 리소스를 로드할 수 없는 경우 대부분 여기에 문제가 발생했습니다.
cd /usr/share/tomcat/webapps/solo-2.4/web-inf/classes vim latke.properties #### server #### # 配置协议 serverscheme=http # 配置客户端访问站点时的域名或ip,也就是前端nginx的域名 serverhost=www.shuaiguoxia.com # 使用的端口 serverport=80solo를 mysql에 연결하도록 구성
h2 런타임 부분은 기본적으로 solo에서 사용됩니다. 수동으로 주석 처리한 후 mysql 런타임 부분의 주석 처리를 제거하세요.
mysql의 사용자 이름과 비밀번호를 설정한 후 172.18.68.41을 mysql(main)의 IP 주소로 변경합니다.
#### 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=druidTomcat 연결 리드 구성
tomcat 연결 리드에는 3개의 소프트웨어 패키지가 필요합니다.
commons-pool2-2.2.jar jedis-2.5.2.jar tomcat-redis-session-manager-2.0.0.jar
필요한 jar 패키지를 /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
콘테스트 .xml 파일에 복사하세요. 파일에 다음 두 줄을 추가합니다.
ip는 redisip 주소이고, 포트는 redis가
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
두 개가 있습니다. 하나의 주인과 하나의 노예. 구성 파일만 다르고 다른 프로세스는 동일합니다.
ntpdate 172.18.0.1
iptables -f
yum install redis
마스터 노드에서는 IP, Listening 포트, 연결 비밀번호만 구성합니다
vim /etc/redis.conf bind 0.0.0.0 # 监听所有ip port 6379 # 设定监听的端口 requirepass 123456 # 设定连接的密码
레 dis 슬레이브 노드 구성
슬레이브 노드가 읽기 전용으로 설정되어 있습니다
bind 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
두 대의 mysql 서버가 있습니다. 하나의 주인과 하나의 노예. 구성 파일만 다르고 다른 프로세스는 동일합니다.
ntpdate 172.18.0.1
iptables -fyum install mariadb
#
#
#运行初始化脚本对mysql进行
cd /usr/local/mysql/bin
mysql_secure_installation #mysql初始化脚本,以下为每一项的翻译
先回车
是否设置root密码
输入密码
确认密码
是否设置匿名用户
是否允许root远程登录
删除test数据库
现在是否生效
마스터-슬레이브 동기화를 활성화해야 합니다. 구성 파일을 수정합니다. 총 2점이에요.
1. 서버 ID는 충돌해서는 안 됩니다.
2. 사용자에게 복사 권한을 허용하려면 메인 서버에 승인된 사용자를 생성하세요.
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.%
슬레이브 서버가 마스터 서버 데이터를 복사할 수 있는 권한을 갖도록 마스터 서버 행에 권한 있는 사용자를 생성합니다. 승인된 사용자는 최소 권한의 법칙을 준수해야 하며, 연결이 허용된 IP 주소가 정확할수록 좋습니다.
musql > grant replication slave on *.* to 'slave_user'@'10.0.0.67' identified by '123456';mysql 슬레이브 서버 구성
mysql 마스터-슬레이브 구성은 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.%
슬레이브 서버에서 mysql 명령줄 구성에 연결하고 마스터 노드의 IP, 사용자 이름 및 비밀번호를 구성합니다. . 가장 중요한 것은 master_log_file과 master_log_pos입니다. 이 두 항목은 마스터 노드에서 쿼리한 결과이며, 마스터 노드의 쿼리 결과와 동일해야 합니다.
# 在mysql主服务器中查询结果 mariadb [(none)]> show master status\g; *************************** 1. row *************************** file: master-log.000003 position: 18893845 binlog_do_db: binlog_ignore_db: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;`
활성 동기화 상태 보기
슬레이브 서버에서 마스터-슬레이브 동기화 상태를 확인하세요. 마지막 두 줄의 yes는 마스터-슬레이브 동기화가 성공했음을 나타냅니다. 테이블, 라이브러리 및 데이터까지 쿼리하여 마스터-슬레이브 동기화 상태를 쿼리하고 확인할 수도 있습니다.
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
위 내용은 Nginx+Tomcat+Redis를 통해 영구 세션을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!