神器 Nginx 的学习手册 ( 建议收藏 )
程序员面试吧
共 4284字,需浏览 9分钟
· 2022-01-09
Nginx 专为性能优化而开发,性能是其最重要的要求,十分注重效率,有报告 Nginx 能支持高达 50000 个并发连接数。
Nginx 知识网结构图
Nginx 的知识网结构图如下:
02
反向代理
![](https://filescdn.proginn.com/09fbf65779c431383cbd8bb6e08206e3/c48517246bc2fc8227c7880db29660ba.webp)
![](https://filescdn.proginn.com/9d1410290495895f5ba39d6308dc311b/0934d96416e5368282046da0e2e8ddc4.webp)
![](https://filescdn.proginn.com/170e273ebeb25bb90ff8b8e85278fd2b/2e6e0d75812566f99768d2d887f640d5.webp)
![](https://filescdn.proginn.com/baf58bed966c2b09fe953a2f91a3a21d/57bdc0b5827e982eeb9d9ad1bb713aea.webp)
04
动静分离
![](https://filescdn.proginn.com/e656a1eb07bc4981f7603d210f20dd07/b1cd51806ca676133e57ecca18b5bfe8.webp)
![](https://filescdn.proginn.com/ee6c2e87de947971421523587905be63/d7437135dfdd933951446dc9ab21f900.webp)
05
Nginx 如何在 Linux 安装
https://blog.csdn.net/yujing1314/article/details/97267369
Nginx 常用命令
./nginx -v
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
Nginx 的配置文件
①全局块
![](https://filescdn.proginn.com/e388c0c477a1820357f13af6d613ab7b/73ea1f9b8ff95a1ad94cf35ee2b08ec7.webp)
②events 块
![](https://filescdn.proginn.com/20e552d1f3931aa3f0afff125ea07ce1/83d8a2ad2bb53fea5468e37e77467488.webp)
③HTTP 块
location[ = | ~ | ~* | ^~] url{
}
=:用于不含正则表达式的 url 前,要求字符串与 url 严格匹配,匹配成功就停止向下搜索并处理请求。 ~:用于表示 url 包含正则表达式,并且区分大小写。 ~*:用于表示 url 包含正则表达式,并且不区分大小写。 ^~:用于不含正则表达式的 url 前,要求 Nginx 服务器找到表示 url 和字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再匹配。 如果有 url 包含正则表达式,不需要有 ~ 开头标识。
06
反向代理实战
①配置反向代理
![](https://filescdn.proginn.com/b581162d41c7bd4a435c559f4e1f52fd/7fe8afd7ee6122f0186f47be7ab121b2.webp)
![](https://filescdn.proginn.com/82083417d0612b1e91720968d9f72eaa/cb68320ef9ef3a0064648987e5c752e0.webp)
![](https://filescdn.proginn.com/deb7bf65648fc4cf955788452daa6b06/c3f85c22a2929e11e6b6cc5f177b4e62.webp)
![](https://filescdn.proginn.com/a6c6ca8fbde67b236f01d964879904b5/a4ac4312e861aa425be919002b98cc2d.webp)
![](https://filescdn.proginn.com/49d6ca962ed09a24afbee1297bc1810b/ea2a5b8cdc702a3dd2c3f2354c86e800.webp)
访问 http://192.168.25.132:9001/edu/ 直接跳转到 192.168.25.132:8080 访问 http://192.168.25.132:9001/vod/ 直接跳转到 192.168.25.132:8081
![](https://filescdn.proginn.com/4536e1ac8e84546860efa3344b24ee64/f049b716965b20034f4e71e8dadc53d1.webp)
![](https://filescdn.proginn.com/66c66bbf81bfd0eab7c093624e7275f6/797cece2bbd23748db2d7a002a7ae974.webp)
![](https://filescdn.proginn.com/6703ee2c05c4a8b92df0fd9a886980a9/a11bbbf396a70423e5a1cea797a32852.webp)
![](https://filescdn.proginn.com/ee12d476e8c80ab4a2643b261a50da0d/ec603f8dea18c556c27df04f4a4477e9.webp)
![](https://filescdn.proginn.com/3db9a87b7c8ee33abcc1735718b4a4a7/0023d32fa1c9aabd556056a222e90a72.webp)
![](https://filescdn.proginn.com/9fca57291984287796923777f6b3cc0d/dc3c6598b8300eb00e7920f477e3ddc6.webp)
![](https://filescdn.proginn.com/3b7e3137dfcf7d05df7c64e5800d9ba6/60cf51f7044eb25df8a28f4cebebc24c.webp)
./nginx -s reload
![](https://filescdn.proginn.com/9fbf4d161b88ee5b01e1c70de7c90911/0422ecd8319e5d1f8c7ef8023c57a45b.webp)
![](https://filescdn.proginn.com/9fbf4d161b88ee5b01e1c70de7c90911/0422ecd8319e5d1f8c7ef8023c57a45b.webp)
192.168.25.132 www.123.com。
访问 http://192.168.25.132:9001/edu/ 直接跳转到 192.168.25.132:8080 访问 http://192.168.25.132:9001/vod/ 直接跳转到 192.168.25.132:8081
![](https://filescdn.proginn.com/488786f0f39d9a4a65831e83668a4eac/07ad8868a91a1066ee673c07505128d6.webp)
![](https://filescdn.proginn.com/1c21fa7daab21feba34889339bba2361/99187682523bcd82e577605fe5a62c7e.webp)
./nginx -s reload
![](https://filescdn.proginn.com/01d75cd0fbbf5c41ba346d02ae12ec8a/9603cef6b15e3e258e9df187256dcff9.webp)
![](https://filescdn.proginn.com/faee40c3ce253fafb6f2af3a4d3a64bb/76b3dd6ea5f71c01e422170b0e880d1b.webp)
轮询(默认)。 weight,代表权,权越高优先级越高。 fair,按后端服务器的响应时间来分配请求,相应时间短的优先分配。 ip_hash,每个请求按照访问 ip 的 hash 结果分配,这样每一个访客固定的访问一个后端服务器,可以解决 Session 的问题。
08
动静分离实战
什么是动静分离?把动态请求和静态请求分开,不是讲动态页面和静态页面物理分离,可以理解为 Nginx 处理静态页面,Tomcat 处理动态页面。
纯粹将静态文件独立成单独域名放在独立的服务器上,也是目前主流方案。 将动态跟静态文件混合在一起发布,通过 Nginx 分开。
动静分离图析:
![](https://filescdn.proginn.com/139ca0ff64f19b5d3dd818633b92f057/2bd75863aa3243fb103fd01766340c09.webp)
![](https://filescdn.proginn.com/3e44a96d40faf189c477b7b3ec640209/08d766cb56aebce9bebeb35366e18c4c.webp)
![](https://filescdn.proginn.com/5cf715755f7728e26a7c25c434e9c0cc/e706ce69b5ffe8818dc898c7867016bf.webp)
![](https://filescdn.proginn.com/441fb18c77e652c940f3a769084c90ba/9021a397f63400864b3ddd73ac82096f.webp)
Nginx 高可用
![](https://filescdn.proginn.com/828580f8ed5fe404cf53b4c5cbd47df3/efdebf661825c1cb92d09f1478a2331e.webp)
![](https://filescdn.proginn.com/b8e2d8e214756f233e524b2acd276e3e/a1d854c620f05223914f8df809e92649.webp)
两台 Nginx 服务器 安装 Keepalived 虚拟 ip
安装 Keepalived:
[root@192 usr]# yum install keepalived -y
[root@192 usr]# rpm -q -a keepalived
keepalived-1.3.5-16.el7.x86_64
[root@192 keepalived]# cd /etc/keepalived
[root@192 keepalived]# vi keepalived.conf
smtp_server 192.168.25.147(主)smtp_server 192.168.25.147(备) state MASTER(主) state BACKUP(备)
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.25.147
smtp_connect_timeout 30
router_id LVS_DEVEL # 访问的主机地址
}
vrrp_script chk_nginx {
script "/usr/local/src/nginx_check.sh" # 检测文件的地址
interval 2 # 检测脚本执行的间隔
weight 2 # 权重
}
vrrp_instance VI_1 {
state BACKUP # 主机MASTER、备机BACKUP
interface ens33 # 网卡
virtual_router_id 51 # 同一组需一致
priority 90 # 访问优先级,主机值较大,备机较小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.25.50 # 虚拟ip
}
}
[root@192 sbin]# systemctl start keepalived.service
![](https://filescdn.proginn.com/1c4a4c04897fe917b1b8c123f85d3230/992202e8dbd68f9633d83528589aac83.webp)
![](https://filescdn.proginn.com/ecafda3d19bda132c587cbe093179126/ae1cc4c891eae4ef702ebaa87af4a608.webp)
原理解析
![](https://filescdn.proginn.com/2267fdaaa60cef32317d8892f5c28c61/70703cc6c59dd4ec034fcb53bda1b0ed.webp)
![](https://filescdn.proginn.com/723edbd826864ca828445511d7ddb0ef/a56f31400d0b60391dd973e6d9e3e2f0.webp)
![](https://filescdn.proginn.com/f169e71f3544df785a07acbc15d2529c/22f538daec83df2607dfd773666b0908.webp)
文章转载:DevOps技术栈
(版权归原作者所有,侵删)
![](https://filescdn.proginn.com/ae3a4f404cd4b6908cdd8c4e1896f8df/bbe84273054b296a8de62e08683e3b5e.webp)
点击下方“阅读原文”查看更多
评论