什么是ngnix?

  • ngnix是一个高性能的Web服务器
  • ngnix不仅仅是高性能的HTTP和反向代理web服务器,同时也是IMAP/POP3/SMTP服务器
  • ngnix改自单词engine 意为“引擎”发音为 [ˈendʒɪnks] ,由俄罗斯人Igor Sysoev为俄罗斯访问量第二的http://Rambler.ru站点(俄文:Рамблер)开发的,目前成为最受欢迎的Web服务器
  • nginx 是一个服务器软件,性能极高占用资源极少,单台机器可以承受5万并发。
  • nginx是 HTTP 和反向代理服务器、邮件代理服务器和通用 TCP/UDP 代理服务器。
  • 使用2-clause BSD-like license协议
  • 官网:http://nginx.org/
  • 源码:https://github.com/nginx/nginx

    为什么选ngnix?

  • Web中实际把ngnix用作软件网关

  • 主要是ngnix低资源、高性能、简单易用、稳定可靠

    网关相关基本概念

    正向代理

    就是我们平时说的“代理”,客户端无法直接访问服务端,从而使用代理,客户端把请求给到代理,代理转发给服务器。
    比如国内无法直接访问Goolge,常用的VPN就是一种代理。
    image.png

    反向代理

    把正向代理反过来就是反向代理:正向代理是替客户端代理,反向代理是替服务端代理
    适用场景:有多个服务端,对客户端隐藏复杂性,只暴漏一个代理,即为反向代理,现代网站都是反向代理
    image.png

    负载均衡

    在反向代理的基础上,客户端请求反向代理,反向代理把请求转发给服务端的时候,根据权重选择转发给不同的服务端,这样就形成了负载均衡。
    image.png

    网关

    在负载均衡的基础上,可以增加路由、限流、鉴权、日志等等功能,这就成了网关
    网关有硬件和软件之分,软件中性能最优的就是ngnix及相关生态
    image.png

ngnix常用命令

格式:ngnix -s signal
信号(signal)的值可能是以下之一:

  • stop - 快速关闭服务
  • quit - 正常关闭服务
  • reload - 重新加载配置文件
  • reopen - 重新打开日志文件

以上命令等同于unix的kill发送信号,例如:

  1. # 平滑重启服务
  2. # nginx -s reload
  3. # 等同于
  4. # kill HUP PID
信号 作用
TERM或INT 快速停止Nginx服务
QUIT 平缓停止Nginx服务
HUP 使用新的配置文件启动进程,之后平缓停止原有进程,“平滑重启”的功能
USR1 重新打开日志文件,常用于日志切割
USR2 使用新版本的Nginx文件启动服务,之后平缓停止原有进程,“平滑升级”的功能
WINCH 平缓停止worker进程,用于Nginx服务器平滑升级
  1. 常用命令
  2. # 立即停止
  3. # nginx -s stop
  4. 或者
  5. # 平滑停止
  6. # nginx -s quit
  7. 或者
  8. # kill TERM | INT | QUIT PID
  9. 或者(不建议这么停止服务)
  10. # kill -9 PID
  11. # 平滑重启服务
  12. # nginx -s reload
  13. 或者
  14. # kill HUP PID