标签:返回 where 代理 ref 一个 关系 bin red sbin
nginx 作为一个反向代理、负载均衡服务器,必须具备高可用的特点,因此 nginx 支持热部署。
nginx 的热部署和其并发模型有着密不可分的关系。说白了,就是因为 master 进程的关系。当通知 ngnix 重读配置文件的时候,master 进程会进行语法错误的判断。如果存在语法错误的话,返回错误,不进行装载;如果配置文件没有语法错误,那么 ngnix 也不会将新的配置调整到所有 worker 中。而是,先不改变已经建立连接的 worker,等待 worker 将所有请求结束之后,将原先在旧的配置下启动的 worker 杀死,然后使用新的配置创建新的 worker。
Nginx 作为一个服务器,我们不可能把服务停了在进行配置升级、软件版本升级吧。所以,Nginx 的热部署就极大的方便了我们对服务器软件的升级维护。
whereis nginx
cd /usr/local/nginx
./sbin/nginx -V #大写V
nginx version: nginx/1.12.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-openssl=/opt/openssl-1.0.2r --with-stream --with-stream_ssl_module
cd /opt
wget http://nginx.org/download/nginx-1.15.0.tar.gz
tar xf nginx-1.15.0.tar.gz
cd nginx-1.15.0
.configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-openssl=/opt/openssl-1.0.2r --with-stream --with-stream_ssl_module
make # 这里只编译不安装,不要执行make install 命令,编译后的nginx文件在/objs/目录下
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cp -a /opt/nginx-1.15.0/objs/nginx /usr/local/nginx/sbin/
kill -USR2 cat /var/run/nginx/nginx.pid
ls -l /usr/local/nginx/logs/
...
nginx.pid
nginx.pid.oldbin
...
kill -QUIT cat /var/run/nginx/nginx.pid.oldbin
./usr/local/nginx/sbin/nginx -v #小写v
nginx version: nginx/1.15.0
至此,nginx热部署完成了。
标签:返回 where 代理 ref 一个 关系 bin red sbin
原文地址:https://blog.51cto.com/10316297/2371939