综合架构-技能点串线:www.processon.com/view/link/6…
拜访暗码:oldboylidao996
Ngx处理用户恳求流程:www.processon.com/view/link/6…
LNMP架构处理流程:www.processon.com/view/link/6…
一、LNMP排错
排除法:
Linux:防火墙,selinux.
Nginx:检查装备,处理流程检查. 测验ngx.
PHP:处理动态恳求. 测验:ngx+php
MySQL: 测验php+数据库
背景:ngx布置wordpress(php)站点报错了,说说排查流程.
1、检查ngx是否正常运转.
检查端口
ss -lntup | grep nginx
检查进程
ps -ef | grep nginx
检查装备
nginx -t
站点目录下创立test.html写入内容,运用curl拜访
curl IP:/80
2、ngx是否把动态页面转发php,php是否解析.
站点目录下
testinfo.php
<?php
phpinfo();
?>
测验完结,必须删除,否则网站信息走漏.
3、检查php衔接数据库是否正常(测验用户名和暗码)
#推荐方式
mysql -u用户 -p暗码 -h 数据库的ip
show databases;
二、复杂均衡和署理
1、署理概述
- 署理: 外卖/中介/中间商. 用户无法直接做某些工作,经过中介进行处理.这个中介就是署理.
- 用户 署理 WEB节点,后边只要一个节点,一般运用的是ngx署理功能即可,后边如果是集群需要运用ngx负载均衡功能.
2、署理分类
署理分类 | 方向 | 应用 |
---|---|---|
正向署理 | 用户(服务器)->署理->外部(某网站) | 服务器经过署理完成同享上网/拜访某个网站 |
反向署理 | 用户(app/浏览器)->署理->网站服务器(WEB) | 给网站设置个统一入口,后边是网站集群(能够运用负载均衡功能) |
1)正向署理
2)反向署理
3、事例:反向署理事例
1)后端web服务器
1、修改ngx装备文件
[root@backup conf.d]# cat /etc/nginx/conf.d/shishu.com.conf
server{
listen 80;
server_name shishu.com;
root /app/code/shishu;
location / {
index index.html;
}
}
2、查验语法nginx -t
3、创立对应目录和文件,并且更改所有者
mkdir -p /app/code/shishu
touch index.html
echo "This is the interface after redirection" > /app/code/shishu/index.html
chown -R nginx.nginx /app/code/shishu
mkdir -p /app/code/html
touch index.html
echo "index.html" > /app/code/html/index.html
chown -R nginx.nginx /app/code/html
4、重启加载ngx服务
systemctl restart nginx
5、本地测验
curl -v -H Host:shishu.com 10.0.0.13
2)前端负载均衡服务器
1、修改ngx装备文件
[root@clb conf.d]# cat /etc/nginx/conf.d/shishu.com.conf
server{
listen 80;
server_name shishu.com;
root /app/code/shishu;
location / {
proxy_pass http://10.0.0.13:80;
proxy_set_header Host $http_host;
}
}
2、查验语法nginx -t
3、重启加载ngx服务
systemctl restart nginx
4、测验署理
curl -v -H Host:shishu.com 10.0.0.12
3)抓包检查
能够看出进行的两次跳转
4、web有多个虚拟主机毛病事例
毛病现象:
- web服务器有多个虚拟主机的时分,经过署理拜访web出现异常.拜访的不是我们想要的虚拟主机
原因:
- 署理向后端web节点宣布恳求的时分,恳求头中的Host,被修改成ip地址形式了
- 相当于署理经过ip地址拜访web服务器,只显示默许虚拟主机
处理:
- 方向:修改署理->web的恳求头
proxy_set_header Host $http_host;
处理的原理:
- 署理->web宣布恳求的时分,修改恳求头中的Host部分,设置为用户恳求的域名
模仿:
注释proxy_set_header Host $http_host;
,模仿拜访到web服务器的默许html。
proxy ngx模块
proxy_pass :传球,恳求传递给指定的节点
proxy_set_header : 修改恳求头,署理->后端节点
5、web记录实在IP
现象:在署理服务器01是客户端,在web服务器上lb是客户端。
在署理服务器添加改ngx的location , proxy_set_header X-Forwarded-For $remote_addr
; 。最后在web服务器上记录了实在的ip地址。
6、负载均衡
- upstream模块的upstream指令
- 创立1个池塘(分组),存放主机
- upstream创立池塘,proxy_pass数据丢向池塘
对LB装备文件进行更改
[root@clb conf.d]# cat /etc/nginx/conf.d/shishu.com.conf
upstream cfg_pools {
server 10.0.0.7:80;
server 10.0.0.8:80;
}
server{
listen 80;
server_name shishu.com;
root /app/code/shishu;
location / {
proxy_pass http://cfg_pools;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
留传:day47 and 48
总的来说,反向署理主要重视于躲藏服务器的内部结构、提供安全性和缓存等功能,而负载均衡则主要重视于平衡服务器的负载、进步系统的性能和可用性。虽然它们在某些方面有堆叠,但是它们的主要功能和运用场景是不同的。