Nginx
功能
- web 服务器
- 负载均衡
- 反向代理
特点
- 网络 I/O 模型:epoll、kqueue
- 支持高并发连接(并发连接数:测试环境 5w,生产环境 2~4w )
- 执行效率极高,内存、CPU等系统资源消耗低,运行稳定
- 配置简单灵活
- 支持 rewrite 重写规则
- 内置健康检查
- 节省带宽
- 支持热部署
- 成本低
安装
- github:https://github.com/nginx/nginx/releases
- 编译依赖:GCC、make、Autoconf、Automake
- 运行依赖:zlib 库、pcre 库、openssl 库
- 源码安装
unzip nginx-1.17.4.zip
cd nginx-1.17.4
./configure
make
sudo make install
Nginx 管理命令
- 启动
$NGINX_BIN_PATH/nginx -c $NGINX_CONF_PATH/nginx.conf
-c 参数用于指定配置文件,不指定时使用默认的配置文件
- 校验配置文件语法
$NGINX_BIN_PATH/nginx -t -c $NGINX_CONF_PATH/nginx.conf
- Nginx 主进程号获取
ps -ef | grep nginx | grep "master"
或
cat $NGINX_PID_PATH/nginx.pid
- 系统信号控制命令
kill -系统信号 `$NGINX_PID_PATH/nginx.pid`
系统信号选项
TERM/INT:快速关闭
QUIT:从容关闭
HUP:平滑重启,重新加载配置文件
USR1:重新打开日志文件,用于切割日志
USR2:平滑升级可执行程序
WINCH:从容关闭工作进程
- Nginx 平滑重启:不中断服务,应用新的配置文件

- Nginx 平滑升级:不中断服务,替换 Nginx 可执行程序

Nginx 配置文件:nginx.conf
# 指定用户和组
user www www;
# 指定工作进程数,一般为主机 CPU 数或其两倍
worker_processes 8;
# 指定错误日志文件及打印级别,选项:[debug|info|notice|warn|error|crit]
error_log $NGINX_ERROR_LOG_PATH/nginx_error.log crit;
pid $NGINX_PID_PATH/nginx.pid;# 指定主进程号文件
worker_rlimit_nofile 51200;# 指定文件描述符数量
events
{
# 指定使用的网络 I/O 模型:Linux 使用 epoll,FreeBSD 使用 kqueue
use epoll;
# 允许连接数
worker_connections 51200;
}
http
{