WEB01配置server
[root@web01 conf.d]# cat admin.conf
server {
listen 80;
server_name admin.baimei.com;
location / {
root /code/admin;
index index.php index.html;
}
location ~ \.php$ {
root /code/admin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[root@web01 conf.d]# nginx -t
[root@web01 conf.d]# systemctl restart nginx
[root@web01 conf.d]# mkdir /code/admin
第二步: 下载代码到/code/admin目录
[root@web01 admin]# wget https://files.phpmyadmin.net/phpMyAdmin/4.8.4/phpMyAdmin-4.8.4-all-languages.zip --no-check-certificate
解压:
[root@web01 admin]# unzip phpMyAdmin-4.8.4-all-languages.zip
将代码移动到admin目录
[root@web01 admin]# mv phpMyAdmin-4.8.4-all-languages/* .
复制一份配置文件:
[root@web01 admin]# cp config.sample.inc.php config.inc.php
修改配置文件连接数据库信息:
[root@web01 admin]# grep 172.16.1.51 config.inc.php
$cfg['Servers'][$i]['host'] = '172.16.1.51';
修改seesion目录权限为www (session 保存在本地的案例)
[root@web01 admin]# ll -d**/var/lib/php/session**
drwxrwx--- 2 root apache 6 Oct 26 2019 /var/lib/php/session
[root@web01 admin]# chown -R www.www /var/lib/php/session
[root@web01 admin]# ll -d /var/lib/php/session
drwxrwx--- 2 www www 6 Oct 26 2019 /var/lib/php/session
配置完成: 修改windows hosts文件解析到10.0.0.7
10.0.0.7 admin.baimei.com
测试是否成功:
mysql -h 10.0.0.51 -ubaimei -p123456 -e 'show databases;'
接下做一下 redis 保存 session
WEB02配置: 同步数据
[root@web02 ~]# rsync -avz --delete 10.0.0.7:/etc/nginx/* /etc/nginx/
WEB01打包并拷贝到web02服务器
[root@web01 admin]# tar zcvf admin.tar.gz ./*
[root@web01 admin]# scp admin.tar.gz 10.0.0.8:/code/admin/
WEB02解压:
[root@web02 admin]# tar xf admin.tar.gz
[root@web02 admin]# nginx -t
[root@web02 admin]# systemctl restart nginx
修改seession目录权限
[root@web02 admin]# ll /var/lib/php/session/ -d
drwxrwx--- 2 www www 141 Apr 7 11:55 /var/lib/php/session/
在lb机器上 测试:
加入代理服务器测试会话:
upstream webs {
server 10.0.0.7;
server 10.0.0.8;
}
server {
listen 80;
server_name admin.baimei.com;
location / {
proxy_pass http://webs;
proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
#请求时携带的参数配置
include proxy_params;
}
}
[root@lb01 conf.d]# nginx -t
[root@lb01 conf.d]# systemctl restart nginx
修改windowshosts解析到10.0.0.5 admin.baimei.com
这个时候, 刷新 admin.baimei.com 会时好时坏,连接不上, 原因是 请求的cokie和 session 对不上, 也就是客户端拿着 cokie 可能找到 0.8 上了。
解决方案: 加上redis ,让redis 统一管理:
解决phpmyadmin会话问题:redis安装
1.在DB服务器上安装redis
[root@db01 ~]# yum -y install redis
2.修改监听端口 可以让其他服务器连接 默认只能本地连接
[root@db01 ~]# grep 172.16.1.51 /etc/redis.conf
bind 127.0.0.1 172.16.1.51
3.启动并检查端口:
[root@db01 ~]# sytemctl start redis
[root@db01 ~]# netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1277/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1361/master
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2736/mysqld
tcp 0 0 172.16.1.51:6379
配置php将session写入到redis中
WEB01:
vim /etc/php.ini
1231 session.save_handler = redis
1264 session.save_path = "tcp://172.16.1.51:6379"
注释/etc/php-fpm.d/www.conf 前面加分号注释
395 ;php_value[session.save_handler] = files
396 ;php_value[session.save_path] = /var/lib/php/session
重启php-fpm
[root@web01 ~]# systemctl restart php-fpm
WEB02: 同步web01数据
[root@web01 ~]# rsync -avz --delete /etc/php.ini 10.0.0.8:/etc/php.ini
root@10.0.0.8's password:
sending incremental file list
php.ini
[root@web01 ~]# rsync -avz --delete /etc/php-fpm.d/www.conf 10.0.0.8:/etc/php-fpm.d/www.conf
www.conf
重启php-fpm
[root@web02 ~]# systemctl restart php-fpm
redis查看数据
[root@db01 ~]# redis-cli
127.0.0.1:6379> keys *
1) "PHPREDIS_SESSION:f96f184460e8ca9dfdc65f3e70cca79c"