综合架构-技能点串线: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();
?>
测验完结,必须删除,否则网站信息走漏.

WEB集群-署理与负载均衡

3、检查php衔接数据库是否正常(测验用户名和暗码)

#推荐方式
mysql -u用户 -p暗码 -h 数据库的ip
show databases;

二、复杂均衡和署理

1、署理概述

  • 署理: 外卖/中介/中间商. 用户无法直接做某些工作,经过中介进行处理.这个中介就是署理.
  • 用户 署理 WEB节点,后边只要一个节点,一般运用的是ngx署理功能即可,后边如果是集群需要运用ngx负载均衡功能.

2、署理分类

署理分类 方向 应用
正向署理 用户(服务器)->署理->外部(某网站) 服务器经过署理完成同享上网/拜访某个网站
反向署理 用户(app/浏览器)->署理->网站服务器(WEB) 给网站设置个统一入口,后边是网站集群(能够运用负载均衡功能)

1)正向署理

WEB集群-署理与负载均衡

WEB集群-署理与负载均衡

2)反向署理

WEB集群-署理与负载均衡

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)抓包检查

能够看出进行的两次跳转

WEB集群-署理与负载均衡

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。

WEB集群-署理与负载均衡

proxy ngx模块

proxy_pass :传球,恳求传递给指定的节点

proxy_set_header : 修改恳求头,署理->后端节点

5、web记录实在IP

现象:在署理服务器01是客户端,在web服务器上lb是客户端。

WEB集群-署理与负载均衡

在署理服务器添加改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

总的来说,反向署理主要重视于躲藏服务器的内部结构、提供安全性和缓存等功能,而负载均衡则主要重视于平衡服务器的负载、进步系统的性能和可用性。虽然它们在某些方面有堆叠,但是它们的主要功能和运用场景是不同的。