搞懂Nginx,这篇文章就够了
Posted 程序员闪充宝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搞懂Nginx,这篇文章就够了相关的知识,希望对你有一定的参考价值。
作者:渐暖°
来源:http://r6d.cn/be3qg
nginx 是一个高性能的 HTTP 和反向代理服务器,特点是占用内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好。Nginx 专为性能优化而开发,性能是其最重要的要求,十分注重效率,有报告 Nginx 能支持高达 50000 个并发连接数。
01
Nginx 知识网结构图
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/ac11b4b3593d4d349b097b490df722ff.jpg)
02
反向代理
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/33940cea0a7b4bcbb0c1250db4db0891.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/83bdea4c2cb849a39d542547c5fb590a.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/8dead577fc0647ddaa4abfccce6a7586.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/5dcd2d66498d4aba98749ce2781f1f39.jpg)
04
动静分离
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/65b40a1475504617a6947b421b8bfecb.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/c2cccf299ce142a9ac586f2dd6edf4bd.jpg)
Nginx 如何在 Linux 安装
https: //blog.csdn.net/yujing1314/article/details/97267369
Nginx 常用命令
./nginx -v
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
Nginx 的配置文件
①全局块
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/31d4c53b6cd44bef8db62fb244c722e3.jpg)
②events 块
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/4a12c94dd81744f2be9ea01c55d98481.jpg)
③HTTP 块
location [ = | ~ | ~* | ^~] url{
}
=:用于不含正则表达式的 url 前,要求字符串与 url 严格匹配,匹配成功就停止向下搜索并处理请求。
~:用于表示 url 包含正则表达式,并且区分大小写。
~*:用于表示 url 包含正则表达式,并且不区分大小写。
^~:用于不含正则表达式的 url 前,要求 Nginx 服务器找到表示 url 和字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再匹配。
如果有 url 包含正则表达式,不需要有 ~ 开头标识。
07
反向代理实战
①配置反向代理
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/525bc0de4ff24669acd666f7f2d3d8cb.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/d1e40f4278674a14b8c8dab6d232998c.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/68796c3f73be4d97b0f12dde998a2df5.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/3ee5889e6fd54801b1f642a6e37bdf12.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/a757d22f80b543e48e2315d639d0c745.jpg)
访问 http://192.168.25.132:9001/edu/ 直接跳转到 192.168.25.132:8080
访问 http://192.168.25.132:9001/vod/ 直接跳转到 192.168.25.132:8081
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/18256956ecc64f90b4f493ebdbe3b6c3.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/a8491b33cf8d49e4a9ec35481f172caa.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/900b663bbc1048ffb79f5dc883638a35.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/9d5755fdb5f74970962bcb07e03d5559.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/2e4bf52fc740483398287d5be9b9bcb3.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/7163c3c1b5294c1c89df330fdf9dd91f.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/e688e5ef02f34325a5e570d17f70c4ce.jpg)
./nginx -s reload
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/2b88046fe7e141458aa3940bec01f567.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/2b88046fe7e141458aa3940bec01f567.jpg)
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
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/fda60c27b68445d6847e54407dd98ca3.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/8baa3db5375d45b0beb4b22c078ee3e5.jpg)
./nginx -s reload
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/2d969448d61e4165ba8f8929d5bebe0f.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/99c16770a4284064871bf461b2f04b1e.jpg)
轮询(默认)。
weight,代表权,权越高优先级越高。
fair,按后端服务器的响应时间来分配请求,相应时间短的优先分配。
-
ip_hash,每个请求按照访问 ip 的 hash 结果分配,这样每一个访客固定的访问一个后端服务器,可以解决 Session 的问题。
09
动静分离实战
什么是动静分离?把动态请求和静态请求分开,不是讲动态页面和静态页面物理分离,可以理解为 Nginx 处理静态页面,Tomcat 处理动态页面。
纯粹将静态文件独立成单独域名放在独立的服务器上,也是目前主流方案。
将动态跟静态文件混合在一起发布,通过 Nginx 分开。
动静分离图析:
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/715085c3eaa842488a77a09db1dd2433.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/440e3a95e7624dbc9817df1a66ea3638.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/c4971af3b04a4ffa8df5483170757c51.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/8172f61d771d41b2bbdcffde1d2d6779.jpg)
Nginx 高可用
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/cac786f14c7f4e969846385ce9c9fea0.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/fb145da674ad4585aad3544c56fb200f.jpg)
两台 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
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/34f4d97dbd0043c69688dd4946edd9fd.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/3ff27d135ce44d9fbb40101d17eaeed9.jpg)
原理解析
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/025641619f03455a83bbb6c317bafea1.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/90dcb6ee931c49a4b60fb312efee22c3.jpg)
![搞懂Nginx,这篇文章就够了](https://image.cha138.com/20210423/03923a7da662434ab7e3a5b6d7b49c00.jpg)
以上是关于搞懂Nginx,这篇文章就够了的主要内容,如果未能解决你的问题,请参考以下文章