神器 Nginx 的学习手册 ( 建议收藏 )
点击上方“程序员大白”,选择“星标”公众号
重磅干货,第一时间送达
来源:blog.csdn.net/yujing1314/article/details/107000737
![](https://filescdn.proginn.com/c64ef8018d7586adb2846c373e227dd7/4cf5c2758dc7e7f846fa56265b45e2b1.webp)
02
反向代理
![](https://filescdn.proginn.com/8dd99e79a2e12ec128ca64afbbafebe8/35558ee0187d7851eedb05db1027c35a.webp)
![](https://filescdn.proginn.com/c3ee605e9522f191ff8c2aca0eaf2ff6/b0e949857745284210279db513a6c18f.webp)
![](https://filescdn.proginn.com/7e26608791f9e1467c92969cc398f26d/dee04c9f46d83e44de71402cc10f306e.webp)
![](https://filescdn.proginn.com/02f47b7a4ef3f6e9d427fd8484665026/efe817c5e27da0ca1e348ecabbed5791.webp)
04
动静分离
![](https://filescdn.proginn.com/2860a4c3a825a8651ba953666d434a6c/494c3f080c6663af95ce98891bcb97eb.webp)
![](https://filescdn.proginn.com/29eba0fa17363dbdba2daddd4b47c783/8ae8a3f1946bc3a45bb78800f83e7898.webp)
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/7ff97a0ad2babf172f9b5e49611b6b89/555486499ad5d757717164268a0902e7.webp)
②events 块
![](https://filescdn.proginn.com/1f3be2d4bd314d8ea46acf3eb22ce2b5/20282df4e1947620734c7cc7b6b46855.webp)
③HTTP 块
location[ = | ~ | ~* | ^~] url{
}
=:用于不含正则表达式的 url 前,要求字符串与 url 严格匹配,匹配成功就停止向下搜索并处理请求。
~:用于表示 url 包含正则表达式,并且区分大小写。
~*:用于表示 url 包含正则表达式,并且不区分大小写。
^~:用于不含正则表达式的 url 前,要求 Nginx 服务器找到表示 url 和字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再匹配。
如果有 url 包含正则表达式,不需要有 ~ 开头标识。
07
反向代理实战
①配置反向代理
![](https://filescdn.proginn.com/c1e2f1de996b036fa8345d8016447ed4/63199c9d5cd28c27eecf207ce6b5cbf2.webp)
![](https://filescdn.proginn.com/1aa13a34f9a978a49887d0e0d4a338fa/fe6a502f203cbeb16895c4cef7cd5c31.webp)
![](https://filescdn.proginn.com/5f39c938f5e5f18b6fa27d3c265c05ef/bb3b764f60228892b456bbc4534c081a.webp)
![](https://filescdn.proginn.com/8e0cb809352b792f380eafcbf9ad90a3/2c229599b394bc86e8fc814946639159.webp)
![](https://filescdn.proginn.com/19fce65fa66b498fbdf41cfad2242024/9ccd9a509b9da51f98ffe32830a3f226.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/faf7ab409033b78975938cce32c1769f/8973da96f7fbfe06554eb820f7830e75.webp)
![](https://filescdn.proginn.com/13df405173fd9bcd6a1143f2bc3a9bf9/4a84b87a5fc0274c7d8be7d3c78e279a.webp)
![](https://filescdn.proginn.com/7b8538070383a1538f31c2858eb7ec5f/27fce2cf5a8b16308635b7143d926575.webp)
![](https://filescdn.proginn.com/a92061883b49d12688afa999196259f4/1145d935b91106965fa483b8d669e272.webp)
![](https://filescdn.proginn.com/720e851b0aff680861a26091155c6517/5a7db831b0ba11c5466d4435c7e50b1f.webp)
![](https://filescdn.proginn.com/3335783f225c1a8c28bbc732fc886789/c3340b4be312f98842eae485da79cf3c.webp)
![](https://filescdn.proginn.com/470ec6095bdcd2d245339f7a01ab0d18/f77044ec25c4fa788bd7d494585e0cef.webp)
./nginx -s reload
![](https://filescdn.proginn.com/d1b2984627dc3f8ab21cab7f962707d5/a6fecd2106ad7c181354dfb0c1219dd2.webp)
![](https://filescdn.proginn.com/d1b2984627dc3f8ab21cab7f962707d5/a6fecd2106ad7c181354dfb0c1219dd2.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/753090337274ae21eb49a3bae38ef500/1ea609a1b0d4a116e92ef8266b43c47b.webp)
![](https://filescdn.proginn.com/ccf9f589e10aa87cbd28371cf657ad6f/e47a63db4c2f3a689c397cfcb6e96e6f.webp)
./nginx -s reload
![](https://filescdn.proginn.com/5838c9d2e0978484de29c2cd9fecb8f9/df56a92214e210f1cf96fbca505af0dd.webp)
![](https://filescdn.proginn.com/715d01e4052ae70475a67aaa71c43b95/c20117174209ebb9bdab7847e35e7532.webp)
轮询(默认)。
weight,代表权,权越高优先级越高。
fair,按后端服务器的响应时间来分配请求,相应时间短的优先分配。
ip_hash,每个请求按照访问 ip 的 hash 结果分配,这样每一个访客固定的访问一个后端服务器,可以解决 Session 的问题。
09
动静分离实战
什么是动静分离?把动态请求和静态请求分开,不是讲动态页面和静态页面物理分离,可以理解为 Nginx 处理静态页面,Tomcat 处理动态页面。
纯粹将静态文件独立成单独域名放在独立的服务器上,也是目前主流方案。
将动态跟静态文件混合在一起发布,通过 Nginx 分开。
动静分离图析:
![](https://filescdn.proginn.com/aeefc29170555b9e05219fdf9c75658c/1473cfd5721931c9681c2221be62fc91.webp)
![](https://filescdn.proginn.com/75e27ff5169df2fc1b088d01909d4dd9/03a51491055921a2e87aac1e1d089ec1.webp)
![](https://filescdn.proginn.com/4fbe4375383a9dd6d8ee0464a7af7917/edebbd6f4cfc2c459b0e9d6bf2072f47.webp)
![](https://filescdn.proginn.com/d9c9ac1d62f90fad45ab138265f40db7/1274094eda6b32c049df62b4cd43a800.webp)
Nginx 高可用
![](https://filescdn.proginn.com/a7cfeb0b1d9298adff676173b0ca5254/502186b2acf2044273e798d9da5680c5.webp)
![](https://filescdn.proginn.com/784db15016804630b7fbbcf596e7b4c8/041af137b5d271936f46d0a7ea9e600b.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/5199ee5ea264e8df5ec79a2d4da5e5f1/50d94d8666c4d7dcad84cd4b05e62dde.webp)
![](https://filescdn.proginn.com/00d652a86e348922cad31d8bbdbd7506/5312f60a818d1e8cdeac68f5d3d46c22.webp)
原理解析
![](https://filescdn.proginn.com/9680b7c2d439d2f73bd1fa861701486f/d12bd22bfe7aa627f1ffe1919ecadccc.webp)
![](https://filescdn.proginn.com/ddb5efeb4e03a962a3de3010e82ec856/d49687448dae21c2ffdede4c9c929ef6.webp)
![](https://filescdn.proginn.com/5183c61ca61140c37a8d0ef132d352e7/2f57a3abf471fc3f1cc10f03593e54bd.webp)
推荐阅读
关于程序员大白
程序员大白是一群哈工大,东北大学,西湖大学和上海交通大学的硕士博士运营维护的号,大家乐于分享高质量文章,喜欢总结知识,欢迎关注[程序员大白],大家一起学习进步!