什么是Nginx
Nginx 是一款高性能的 http 服务器和反向代理服务器,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。
Nginx 应用场景
- http 服务器:Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器。
- 虚拟主机:可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
- 反向代理,负载均衡:当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
正向代理
正向代理:局域网中的Pc客户端要访问局域网外的 Internet 网,不能直接访问,需要通过代理服务器来访问,这种代理服务就称为正向代理。
反向代理
反向代理:反向代理服务器接受 internet 上的连接请求,然后将请求转发给内部网络上的目标服务器,并将从目标服务器上得到的结果返回给 internet 上请求连接的客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。
正向代理和反向代理的区别:如果我们客户端自己用,就是正向代理。如果是在服务器用,用户无感知,就是反向代理。
负载均衡
负载均衡:将多个请求分摊到多台服务器上,相当于把一台服务器需要承担的负载量交给多台服务器处理,进而提高系统的吞吐率;另外如果其中某一台服务器挂掉,其他服务器还可以正常提供服务,以此来提高系统的可伸缩性与可靠性。
负载均衡的策略
- 轮询(默认) :
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
upstream mytomcat{server 192.168.170.129:8080;server 192.168.170.129:8081;server 192.168.170.129:8082;}
- weight:
weight 代表权重默认为 1,权重越高被分配的客户端越多。指定轮询几率,weight权重大小和访问比率成正比。用于后端服务器性能不均衡的情况。
upstream mytomcat{server 192.168.170.129:8080;# 该台服务器接受1/4的请求量server 192.168.170.129:8081 weight=2;# 该台服务器接受1/2的请求量server 192.168.170.129:8082;# 该台服务器接受1/4的请求量}