Nginx(一)概述
一、Nginx 简介
Nginx 是一个高性能的Web服务器和反向代理服务器,也可以作为邮件代理服务器,另外 Nginx 可以作为反向代理进行负载均衡的实现。
Nginx 优势
Nginx在反向代理、Rewrite规则、稳定性、静态文件处理,内存消耗等方面,有很强的优势,使用Nginx取代传统的Apache服务器,会得到多方面的性能提升。
-
可以高并发连接
官方测试Nginx能够支撑5万并发连接,实际生产环境中可以支撑2~4万并发连接数。原因,主要是Nginx使用了最新的epoll(Linux2.6内核)和kqueue(freeBSD)网路I/O模型,而Apache使用的是传统的Select模型,其比较稳定的Prefork模式为多进程模式,需要经常派生子进程,所以消耗的CPU等服务器资源,要比Nginx高很多。 -
内存消耗少
Nginx+PHP(FastCGI)服务器,在3万并发连接下,开启10个Nginx进程消耗150MB内存,15MB10=150MB,开启的64个PHP-CGI进程消耗1280内存,20MB64=1280MB,加上系统自身消耗的内存,总共消耗不到2GB的内存。如果服务器的内存比较小,完全可以只开启25个PHP-CGI进程,这样PHP-CGI消耗的总内存数才500MB。 -
成本低廉
购买F5BIG-IP、NetScaler等硬件负载均衡交换机,需要十多万到几十万人民币,而Nginx为开源软件,采用的是2-clause BSD-like协议,可以免费试用,并且可用于商业用途。BSD开源协议是一个给使用者很大自由的协议,协议指出可以自由使用、修改源代码、也可以将修改后的代码作为开源或专用软件再发布。 -
配置文件非常简单
网络和程序一样通俗易懂,即使,非专用系统管理员也能看懂。 -
支持Rewrite重写
能够根据域名、URL的不同,将http请求分到不同的后端服务器群组。 -
内置的健康检查功能
如果NginxProxy后端的某台Web服务器宕机了,不会影响前端的访问。 -
节省带宽
支持GZIP压缩,可以添加浏览器本地缓存的Header头。 -
稳定性高
用于反向代理,宕机的概率微乎其微。 -
支持热部署
Nginx支持热部署,它的自动特别容易,并且,几乎可以7天*24小时不间断的运行,即使,运行数个月也不需要重新启动,还能够在不间断服务的情况下,对软件版本进行升级。 -
高度模块化
高度模块化的设计是Nginx的架构基础。极大的方便了其功能扩展。
二、 Nginx 和其它服务器对比
图片.png
三、正向代理和反向代理
实践中客户端无法直接跟服务端发起请求的时候,我们就需要代理服务。代理可以实现客户端与服务端之间的通信,我们的Nginx也可以实现相应的代理服务。代理分为正向代理和反向代理,此文就来演示一下Nginx配置正向代理和反向代理的场景。
3.1 正向代理
图片.png
图片.png
举例:访问一个遭防火墙拦截的外部网站时,需要使用VPN。
3.2 反向代理
图片.png
图片.png
举例:中台所有的微服务需要通过Nginx 统一的端口进行调用。
3.3 正向代理和反向代理的区别
正向代理代理客户端,反向代理代理服务器。
正向代理知道目标服务的地址,反向代理不知道目标服务器的网址。
参考博客:
1、https://blog.csdn.net/nangeali/article/details/60143560