day14.5
day14.5
nginx七层负载-会话共享
# 会话保持相关信息存储
1.cookie
1.前端开发人员将用户登录信息,保存到浏览器中(开发者工具>applicantion>cookile)
2.如果仅将用户的登录信息记录在cookile中,随时可以在浏览器中篡改
2.session
1.后端开发人员,将用户登录信息记录在服务器上(共享存储,某一个文件夹下的某个文件、数据库中、缓存数据库中...)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 |
部署PHPmyadmin
# 1.下载phpmyadmin
[root@web01 code]# wgethttp://test.driverzeng.com/Nginx_Code/phpMyAdmin-4.9.0.1-alllanguages.zip
# 2.解压代码
[root@web01 wc]# unzaip phpMyAdmin-4.9.0.1-all-languages.zip
# 3.添加nginx虚拟主机配置文件
[root@web01 wc]# vim /etc/nginx/conf.d/php.conf
server{
listen 80;
server_name php.wc.com;
root /wc/php;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# web02进行配置
[root@web02 wc]# vim /etc/nginx/conf.d/php.conf
server{
listen 80;
server_name php.wc.com;
root /wc/php;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 4.修改代码连接数据库的配置文件
将站点目录下的案例配置文件改名
[root@web01 php]# cp config.sample.inc.php config.inc.php
[root@web01 php]# vim config.inc.php
将第31行的localhost改成自己的数据库IP地址
31 $cfg['Servers'][$i]['host'] = '172.16.1.51';
# 5.web01的代码发送到web02站点目录下
[root@web01 php]# scp /etc/php-fpm.d/www.conf 172.16.1.8:/etc/php-fpm.d/
# 6.nginx重启
[root@web01 php]# systemctl reload nginx
[root@web02 php]# systemctl reload nginx
报错
# 存放session的目录没有权限
[root@web01 php]# chown -R www.www /var/lib/php/session
[root@web02 php]# chown -R www.www /var/lib/php/session
# 使用数据库的用户名和密码登录:之前的WordPress用户名和密码就可以用使用
# 1.连接数据库
[root@db01 ~]# mysql -uroot -p123
# 2.创建一个数据库的新用户
MariaDB [(none)]> grant all on *.* to php@'%' identified by '123';
登录的用户名:php
登录密码:123
添加phpmyadmin
# 1.在负载均衡上添加nginx配置文件
[root@lb01 ~]# vim /etc/nginx/conf.d/php.wc.conf
upstream php.wc.com {
server 172.16.1.7;
server 172.16.1.8;
}
server {
listen 80;
server_name php.wc.com;
location /{
proxy_pass http://php.wc.com;
include proxy_params;
}
}
# 2.域名解析到负载均衡
10.0.0.5 php.zls.com
用户的登录信息,session没有做共享
制作session共享
修改Redis配置文件
# 1.在db01上安装Redis数据库
[root@db01 ~]# yum install -y redis
# 2.修改Redis配置文件
修改第61行内容
61 bind 0.0.0.0
# 3.启动服务
[root@db01 ~]# systemctl start redis
修改PHP程序配置文件
# 1.修改PHP配置文件
[root@web01 php]# vim /etc/php.ini
修改以下行数内容
1231 session.save_handler = redis
1264 session.save_path = "tcp://172.16.1.51:6379"
1294 session.auto_start = 1
# 2.修改PHP启动程序配置文件
[root@web01 php]# vim /etc/php-fpm.d/www.conf
将以上内容注释
395 ;php_value[session.save_handler] = files
396 ;php_value[session.save_path] = /var/lib/php/session
# 3.将改好的配置文件拷贝到web02上
[root@web01 php]# scp /etc/php.ini 172.16.1.8:/etc/
[root@web01 php]# scp /etc/php-fpm.d/www.conf 172.16.1.8:/etc/php-fpm.d/
# 4.重启PHP
[root@web01 php]# systemctl reload php-fpm
[root@web02 php]# systemctl reload php-fpm
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了