Nginx安装、升级

创建
阅读 1646

依赖安装

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

下载 openssl

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

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 不用于反向代理,可选)

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

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

编译安装

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

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 mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

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

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

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

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

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

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

停止老版本运行

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

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

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

参考

nginx 之平滑升级详解

本文链接 https://www.yidiankuaile.com/post/nginx