什么是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就是一种代理。
反向代理
把正向代理反过来就是反向代理:正向代理是替客户端代理,反向代理是替服务端代理
适用场景:有多个服务端,对客户端隐藏复杂性,只暴漏一个代理,即为反向代理,现代网站都是反向代理
负载均衡
在反向代理的基础上,客户端请求反向代理,反向代理把请求转发给服务端的时候,根据权重选择转发给不同的服务端,这样就形成了负载均衡。
网关
在负载均衡的基础上,可以增加路由、限流、鉴权、日志等等功能,这就成了网关
网关有硬件和软件之分,软件中性能最优的就是ngnix及相关生态
ngnix常用命令
格式:ngnix -s signal
信号(signal)的值可能是以下之一:
- stop - 快速关闭服务
- quit - 正常关闭服务
- reload - 重新加载配置文件
- reopen - 重新打开日志文件
以上命令等同于unix的kill发送信号,例如:
# 平滑重启服务
# nginx -s reload
# 等同于
# kill HUP PID
信号 | 作用 |
---|---|
TERM或INT | 快速停止Nginx服务 |
QUIT | 平缓停止Nginx服务 |
HUP | 使用新的配置文件启动进程,之后平缓停止原有进程,“平滑重启”的功能 |
USR1 | 重新打开日志文件,常用于日志切割 |
USR2 | 使用新版本的Nginx文件启动服务,之后平缓停止原有进程,“平滑升级”的功能 |
WINCH | 平缓停止worker进程,用于Nginx服务器平滑升级 |
常用命令
# 立即停止
# nginx -s stop
或者
# 平滑停止
# nginx -s quit
或者
# kill TERM | INT | QUIT PID
或者(不建议这么停止服务)
# kill -9 PID
# 平滑重启服务
# nginx -s reload
或者
# kill HUP PID