「Nginx」简述Nginx
转载请注明出处: blog.****.net/jinixin/article/details/89894063
Nginx是什么? 如何配置? 作用有哪些? 这些问题一直困扰着我, 下面做个简单记录.
在我的理解中, Nginx是一个Web服务器, 架设在客户端和应用服务器之间, 用于在客户端与应用服务器间转发请求与响应. 形如下图:
从客户端角度看, Nginx与应用服务器是一个整体, 即为一个黑盒, 结合上篇博客, 可以很明显看出Nginx是反向代理.
作用
做反向代理服务器即为Nginx的一个作用, 常见用法在此我先一并列出, 之后都会详细提到:
- 静态资源服务器
- 虚拟主机(即共享主机)
- 反向代理服务器, 并支持集群负载均衡
除此之外, Nginx还可以控制IP, 缓存响应等.
安装
Nginx本身分为开源版本与商业版本, 我使用的是开源版本, 相关安装文档请参照这里.
主进程与工作进程
Nginx包括一个主进程和多个工作进程, 主进程负责读取并生效配置文件, 保活所有工作进程. 工作进程处理收到的网络请求, 一个工作进程可同时异步处理多个网络请求, 工作进程数量可通过配置文件设定, 一般为CPU核心数量的1~2倍.
当启动Nginx或重新载入配置文件时, 主进程首先会检查配置文件的语法, 若语法正确, 其会根据配置文件构造新的工作进程, 并要求旧的工作进程在结束当前请求后自行销毁. 如期间发生异常, 其会回滚至旧配置, 这也正是Nginx支持热部署的原因.
常用命令
Nginx可以通过如下命令进行管理:
- nginx, 启动Nginx
- nginx -h, 获取帮助信息
- nginx -t, 检查配置文件语法, 从打印结果中可知配置文件位置. 编辑配置后建议先用该命令进行检查, 通过后再重新载入.
- nginx -s stop, 立即停止Nginx, 类似于操作系统的KILL信号.
- nginx -s quit, 温柔停止Nginx, 类似于操作系统的TERM信号, Nginx主进程会要求工作进程在处理完当前请求后再销毁.
- nginx -s reload, 重新载入Nginx配置文件
日志
Nginx的日志默认处于”/var/log/nginx/”下, 并分为”access_log”与”error_log”两个文件, 具体位置可在配置文件里修改, Nginx支持:
- 不同server输出到不同的日志文件
- 同个server输出到多份日志文件
有关Nginx的配置, 将在下篇中开始介绍.
文中如有不当之处, 还望包容和指出, 谢谢.