什么是反向代理,什么又是正向代理呢?(一)

Nginx 是一个轻量级的 Web 服务器和反向代理服务器。由于内存占用低(一个worker进程只占用10-12M内存)、极快的启动速度、高并发能力,被广泛应用于互联网项目中。

上图基本说明了当前流行的技术架构,其中 Nginx 有点像一个入口网关。

反向代理服务器

经常听到一些名词,比如反向代理,那么什么是反向代理,什么是正向代理呢?下面是一个简短的总结。

转发代理

由于防火墙,我们不能直接访问谷歌,所以可以使用VPN来实现,这是一个转发代理的简单例子。这里可以看到转发代理“proxy”是客户端,客户端知道目标,但目标不知道客户端是通过VPN访问的。

正向代理图

反向代理

当我们在外网访问百度的时候,其实是对内网进行了转发和代理。这就是所谓的反向代理逆向程序员是什么意思,即反向代理“代理”是服务器端,这个过程是针对客户端的。是透明的。

反向代理示意图

Nginx的Master-Worker模式

要启动 nginx,只需输入命令 nginx,其中 xxx 是您的 nginx 安装目录。

nginx进程

启动 Nginx 后,实际上是在 80 端口启动 Socket 服务进行监控。如图,Nginx涉及到Master进程和Worker进程。

主从模式

Master进程的作用:读取并验证配置文件nginx.conf;管理工作进程;

Worker进程的作用:每个Worker进程维护一个线程(避免线程切换),处理连接和请求;注意Worker进程的个数是由配置文件决定的,一般和CPU个数有关(有利于进程切换)。每个都有几个Worker进程,上面的例子只有一个Worker进程。

思考一:Nginx如何实现热部署?

所谓热部署,是指修改配置文件nginx.conf后,无需停止Nginx或中断请求,配置文件即可生效!(nginx -s reload reload/nginx -t 检查配置/nginx -s stop)

从上面我们已经知道worker进程负责处理具体的请求,所以如果想要达到热部署的效果,可以想象:

方案一:修改配置文件nginx.conf后,主进程master负责将更新后的配置信息推送给worker进程。工作进程收到信息后,更新进程内部的线程信息。

方案二:修改配置文件nginx.conf后,重新生成一个新的worker进程。当然,它会用新的配置来处理,新的请求必须交给新的工作进程。至于旧的工作进程,等待那些以前的。处理请求后,将其杀死。

Nginx采用第二种方案实现热部署!

思考二:Nginx如何实现高并发下的高效处理?

如上所述,Nginx 中工作进程的数量是与 CPU 绑定的,而工作进程包含一个线程可以高效地环回处理请求逆向程序员是什么意思,这确实有助于提高效率,但还不够。

作为专业的程序员,我们可以大开脑洞:BIO/NIO/AIO、异步/同步、阻塞/非阻塞……

要同时处理这么多请求,要知道有些请求需要IO,可能需要很长时间。如果等待它会减慢worker的处理速度。

Nginx 采用 Linux 的 epoll 模型。epoll 模型基于事件驱动机制。它可以监控多个事件是否就绪。如果没问题,则将它们放入 epoll 队列中。这个过程是异步的。worker 只需要从 epoll 队列中循环处理。

思考三:Nginx挂了怎么办?

由于 Nginx 是一个入口网关,所以它非常重要。如果是单点问题,那显然是不能接受的。答案是:Keepalived+Nginx 实现高可用。

Keepalived 是一种高可用的解决方案,主要用于防止服务器的单点故障。配合Nginx可以实现Web服务的高可用。(其实Keepalived不仅可以和Nginx合作,还可以和其他很多服务合作)

Keepalived+Nginx实现高可用的思路:

第一:不要直接向Nginx发出请求,要先通过Keepalived(这就是所谓的虚拟IP,VIP)

第二:keepalived应该可以监控Nginx的生命状态(提供自定义脚本,定期检查Nginx进程状态,改变权重,从而实现Nginx故障转移)

保活+Nginx

我们的主战场:nginx.conf

很多时候,在开发和测试环境中,我们不得不自己配置Nginx,也就是配置nginx.conf。nginx.conf是一个典型的分段配置文件,下面我们来分析一下。在 Nginx 中,您可以指定多个虚拟服务器,每个虚拟服务器都使用服务器上下文进行描述。{}

虚拟主机

nginx的配置文件主要由指令组成,指令主要包括名称和参数,以分号;结尾。下面是虚拟服务器的配置:listen命令指定虚拟主机监听给定的IP端口组合;server_name命令检测Host头来判断请求匹配到哪个虚拟主机… nginx的配置项很多,可以参考详细。在线信息。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论