Lidong's blog

nginx安装、升级

依赖安装

1
2
sudo yum -y install pcre-devel
sudo yum -y install zlib-devel

下载openssl

使用最新版的openssl对nginx进行编译,

1
2
3
4
wget -c https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar zxf openssl-1.0.2k.tar.gz
mv openssl-1.0.2k/ openssl

下载ngx_http_substitutions_filter_module

用于反向代理中的字符替换(如果nginx不用于反向代理,可选)

1
2
3
wget -c https://github.com/yaoweibin/ngx_http_substitutions_filter_module/archive/master.zip
unzip master.zip

解压之后文件夹为 ngx_http_substitutions_filter_module-master

安装nginx

下载nginx

1
wget -c http://nginx.org/download/nginx-1.11.10.tar.gz

编译安装

1
2
3
4
5
6
cd nginx-1.11.10/
./configure --with-http_v2_module --with-http_ssl_module --with-openssl=./../openssl/ --add-module=./../ngx_http_substitutions_filter_module-master/
make
sudo make install

——分割线—–(如升级安装,会用到)

升级安装

下载

同上

编译

同上(去掉最后一步,make install

1
2
3
4
cd nginx-1.11.10/
./configure --with-http_v2_module --with-http_ssl_module --with-openssl=./../openssl/ --add-module=./../ngx_http_substitutions_filter_module-master/
make

重命名保存进程号的文件

1
sudo mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

复制编译后的 objs/目录下的 nginxsbin 目录下

1
sudo cp objs/nginx /usr/local/nginx/sbin/

测试复制文件及配置文件的是否正确

1
sudo /usr/local/nginx/sbin/nginx -t

让nginx把nginx.pid文件修改成nginx.pid.oldbin

1
sudo kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`(发送平滑升级信号将旧的nginx.pid文件添加后缀nginx.pid.oldbin)

停止老版本运行

1
2
sudo kill -WINCH(平缓停止worker process) `cat /usr/local/nginx/log/nginx.pid.oldbin
sudo kill -QUIT `cat /usr/local/nginx/log/nginx.pid.oldbin`

升级完成了,最后在看一下升级后的版本

1
2
sudo /usr/local/nginx/sbin/nginx -v
// nginx: nginx version: nginx/1.11.10

参考

nginx之平滑升级详解

本文链接: