架构(day16)
原创
©著作权归作者所有:来自51CTO博客作者佳豪哥哥的原创作品,请联系作者获取转载授权,否则将追究法律责任
nginx其层负载-会话共享
会话保持相关信息存储
- 前端开发人员将用户登录的信息,保存到浏览器中(开发者工具->Application->Cookies)
- 如果仅将用户的登录信息记录在Cookie中,随时可以在浏览器中篡改
- 后端开发人员,将用户登录信息记录在 服务器上(共享存储,某一个文件夹下的某个文件、数据库中、缓存数据库中....)session是对cookie做的加密,保存在服务器上
部署phpMyadmin
环境准备
主机名
| WanIP
| LanIP
| 角色
| 应用
|
lb01
| 10.0.0.5
| 172.16.1.5
| 负载均衡
| nginx
|
web01
| 10.0.0.7
| 172.16.1.7
| phpmyadmin网站
| nginx、php
|
web02
| 10.0.0.8
| 172.16.1.8
| phpmyadmin网站
| nginx、php
|
db01
| 10.0.0.51
| 172.16.1.51
| 数据库
| MariaDB
|
部署
# 1.下载phpmyadmin代码
[root@web01 code]# wget http://test.driverzeng.com/Nginx_Code/phpMyAdmin-4.9.0.1-all-languages.zip
# 2.解压代码
[root@web01 code]# unzip phpMyAdmin-4.9.0.1-all-languages.zip
# 3.添加nginx虚拟主机配置文件
[root@web01 conf.d]# vim /etc/nginx/conf.d/php.wjh.com.conf
server{
listen 80;
server_name php.wjh.com;
root /blog/phpMyAdmin;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass unix:/dev/shm/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[root@web02 ~]# vim /etc/nginx/conf.d/php.wjh.com.conf
server{
listen 80;
server_name php.wjh.com;
root /blog/phpMyAdmin;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass unix:/dev/shm/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 4.修改代码连接数据库的配置文件
将站点目录下的案例配置文件改名
[root@web01 phpmyadmin]# cp config.sample.inc.php config.inc.php
[root@web01 phpmyadmin]# vim config.inc.php
将第31行的localhost改成自己数据库的ip地址
$cfg['Servers'][$i]['host'] = '172.16.1.51';
# 5.web01上的代码发送到web02站点目录下
[root@web01 phpmyadmin]# scp -r /code/phpmyadmin 172.16.1.8:/code/
# 6.nginx重启
[root@web01 phpmyadmin]# systemctl restart nginx
[root@web02 phpmyadmin]# systemctl restart nginx
报错:
存放session的目录没有权限
[root@web01 phpmyadmin]# chown www.www /var/lib/php/session/
[root@web02 phpmyadmin]# chown www.www /var/lib/php/session/
使用数据库的用户名和密码登录:之前的wordpress用户名和密码就可以使用
# 1.连接数据库
[root@db01 ~]# mysql -uroot -p123
# 2.创建一个数据库的新用户
MariaDB [(none)]> grant all on *.* to phpadmin@'%' identified by '123';
登录的用户名:phpadmin
登录的密码:123
添加phpmyadmin的负载均衡
# 1.在负载均衡上添加nginx配置文件
[root@lb01 conf.d]# vim /etc/nginx/conf.d/php.wjh.com_proxy.conf
upstream php.wjh.com {
server 172.16.1.7;
server 172.16.1.8;
}
server {
listen 80;
server_name php.wjh.com;
location /{
proxy_pass http://php.wjh.com;
include proxy_params;
}
}
# 2.将域名解析到负载均衡
10.0.0.5 php.zls.com
报错
用户的登录信息,session没有做共享
制作session共享
## 注意:redis端口:6379
# 1.在db01上安装redis数据库
[root@db01 ~]# yum install -y redis
# 2.修改redis配置文件
[root@db01 ~]# vim /etc/redis.conf
将第61行的bind后面IP地址改为 0.0.0.0
bind 0.0.0.0
# 3.启动服务
[root@db01 ~]# systemctl start redis
# 4.修改php程序配置文件
[root@web01 phpmyadmin]# vim /etc/php.ini
1231 session.save_handler = files
将以上内容改为以下内容
session.save_handler = redis
在第1265行添加如下内容
session.save_path = "tcp://172.16.1.51:6379"
1295 session.auto_start = 0
将以上内容改为以下内容
session.auto_start = 1
# 5.修改php启动程序配置文件
[root@web01 phpmyadmin]# vim /etc/php-fpm.d/www.conf
源配置
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
将以上两行内容使用';'注释
;php_value[session.save_handler] = files
;php_value[session.save_path] = /var/lib/php/session
# 6.重启php
[root@web01 phpmyadmin]# systemctl restart php-fpm
# 7.将改好的配置文件拷贝到web02
[root@web01 phpmyadmin]# scp /etc/php.ini 172.16.1.8:/etc/
[root@web01 phpmyadmin]# scp /etc/php-fpm.d/www.conf 172.16.1.8:/etc/php-fpm.d/
# 8.重启web02上的php