SpringCloud第15讲:Nginx配置及使用

本文介绍了Nginx作为反向代理服务器的角色,以及它与Tomcat等传统服务器的区别。Nginx以其高性能、配置简单、非阻塞的I/O模型、内存消耗低和内置健康检查等特点著称。Nginx处理请求的过程包括接受连接、分发请求和发送响应。此外,还列举了Windows环境下Nginx的常用命令。
摘要由CSDN通过智能技术生成

一、什么是反向代理服务器?

        在服务器端接收客户端的请求,然后把请求分发给具体的服务器进行处理,然后再将服务器的响应结果反馈给客户端。

        Nginx就是其中的一种反向代理服务器软件。

二、什么是Nginx?

        Nginx是俄罗斯人塞索耶夫编写的一款高性能的HTTP反向代理服务器。也是一个IMAP/POP3/SMTP代理服务器,也就是说,Nginx本身就可以托管网站,进行HTTP服务处理。

三、Nginx和传统Tomcat服务器的区别是什么?

四、Nginx有什么特点?

  • 跨平台:Nginx可以在大多数操作系统中运行,而且也有Windows的移植版本
  • 配置异常简单:非常容易上手。配置风格跟程序开发一样,神一般的配置
  • 非阻塞、高并发:数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能够支撑5万并发连接,在实际生产环境中跑到2-3万并发连接数(这得益于Nginx使用了最新的epoll模型)
  • 事件驱动:通信机制采用epoll模式,支持更大的并发连接数
  • 内存消耗小:处理大并发的请求内存消耗非常小。在3万并发连接下,开启的10个Nginx进程才消耗150M内存(15M*10=150M)
  • 成本低廉:Nginx作为开源软件,可以免费试用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币
  • 内置健康检查功能:如果Nginx Proxy后端的某台Web服务器宕机了,不会影响前端访问。
  • 节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头。
  • 稳定性高:用于反向代理,宕机的概率微乎其微。

五、Nginx不为人知的特点

  • Nginx代理和后端web服务器间无需长链接;
  • 接收用户请求是异步的,即先将用户请求全部接收下来,再一次性发送给后端web服务器,极大的减轻后端web服务器的压力;
  • 发送响应报文时,是边接收来自后端web服务器的数据,边发送给客户端的;
  • 网络依赖性低。Nginx对网络的依赖程度非常低,理论上讲,只要能够ping通就可以实施负载均衡,而且可以有效区分内网和外网流量;
  • 支持服务器检测。Nginx能够根据应用服务器处理页面返回的状态码、超时信息等检测服务器是否出现故障,并及时返回错误的请求重新提交到其他节点上。

六、Nginx是如何处理一个请求的?

        首先,Nginx在启动时,会解析配置文件,得到需要监听的端口号与IP地址,然后再Nginx的master进程里面,先初始化好这个监控的socket(创建socket,设置addrreuse等选项,绑定到指定的IP地址和端口号,再listen),然后再fork(一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程)出多个子进程出来,然后子进程会竞争accept新的连接。此时,客户端就可以向Nginx发起连接了。当客户端与Nginx进行三次握手,与Nginx建立好一个连接后,此时,某一个子进程会accept成功,得到这个连接好的连接的socket,然后创建Nginx对连接的封装,即ngx_connecton_t结构体。接着,设置读写事件处理函数并添加读写事件与客户端进行数据交换。最后,Nginx或客户端来主动关掉连接,到此,一个连接就寿终正寝了。

        当然Nginx也是可以作为客户端来请求其他server的数据的(如upstream模块),此时,与其他server创建的连接,也封装在ngx_connection_t中。作为客户端,Nginx先获取一个ngx_connection_t结构体,然后创建socket,并设置socket的属性(比如非阻塞)。然后再通过添加读写事件,调用connect/read/write来调用连接,最后关掉连接,并释放ngx_connection_t。

七、Windows环境下的常用命令

  • 查看Nginx的版本号:nginx -V
  • 启动Nginx:start nginx
  • 快速停止或关闭Nginx:nginx -s stop
  • 正常停止或关闭Nginx:nginx -s quit
  • 配置文件修改重装载命令:nginx -s reload
  • 查看windows任务管理器下Nginx的进程命令:tasklist /fi "imagename eq nginx.exe
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值