编译安装Nginx
环境准备
yum install -y gcc
yum -y install gperftools
yum install -y gcc-c++
yum install -y pcre pcre-devel #正则
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
yum -y install gperftools
针对最通用的、使Nginx支持更多并发请求的 TCP网络参数做简单说明。修改 system.conf, vim /etc/sysctl.conf
fs.file-max = 999999
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range = 1024 61000
net.ipv4.tcp_rmem = 4096 32768 262142
net.ipv4.tcp_wmem = 4096 32768 262142
net.core.netdev_max_backlog = 8096
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn.backlog=1024
执行sysctl -p 使其生效
编译安装
1 | ./configure --with-http_auth_request_module --with-http_realip_module --with-http_v2_module --with-debug --with-http_random_index_module --with-http_sub_module --with-http_addition_module --with-http_secure_link_module --with-http_ssl_module --with-stream_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-stream --with-http_slice_module --with-google_perftools_module --with-threads --with-http_gzip_static_module --with-http_gunzip_module --with-http_stub_status_module |
启动与停止
默认方式启动
/usr/local/nginx/sbin/nginx
另行指定配置文件的启动方式
/usr/local/nginx/sbin/nginx -c /tmp/nginx.conf
显示编译阶段的参数
/usr/local/nginx/sbin/nginx -V
测试配置信息是否有错误
/usr/local/nginx/sbin/nginx -t -q
/usr/local/nginx/sbin/nginx -s reload === kill -s SIGHUP
快速地停止服务
/usr/local/nginx/sbin/nginx -s stop == kill -s SIGTERM
“优雅”地停止服务
该命令与快速停止Nginx服务是有区别的。当快速停止服务时, worker进程与master进程在收到信号后会立刻跳出循环,退出进程。 而“优雅”地停止服务时,首先会关闭监听端口,停止接收新的连接,然 后把当前正在处理的连接全部处理完,最后再退出进程。
/usr/local/nginx/sbin/nginx -s quit # 优雅 == kill -s SIGQUIT
/usr/local/nginx/sbin/nginx -s reopen 使用-s reopen参数可以重新打开日志文件,这样可以先把当前日志文件改名或转移到其他目录中进行备份,再重新打开时就会生成新的日 志文件。这个功能使得日志文件不至于过大 ===kill -s SIGUSR1
平滑升级Nginx
通知正在运行的旧版本Nginx准备升级。通过向master进程发送 USR2信号可达到目的。例如: kill -s SIGUSR2
nginx启动之后,woker 监听端口