前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx平滑升级编译headers-more模块

nginx平滑升级编译headers-more模块

原创
作者头像
用户1168904
修改2021-07-20 14:27:06
8740
修改2021-07-20 14:27:06
举报
文章被收录于专栏:运维相关文档

nginx平滑升级编译headers-more模块

不想暴露某些服务器信息的时候,需要自定义response头信息,可以去修改nginx的源码,或者编译的时候,加上headers-more这个模块.

原来编译时没有编译进headers-more这个模块现在试试平滑升级重新编译进来。

先下载nginx-0.7.66.tar.gz

下载agentzh-headers-more-nginx-module-v0.14-1-g7bba2a1.tar.gz 模块

解压两个压缩包

tar xzvf nginx-0.7.66.tar.gz

tar xzvf agentzh-headers-more-nginx-module-v0.14-1-g7bba2a1.tar.gz

进入nginx-0.7.66目录编译

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/usr/local/src/agentzh-headers-more-nginx-module-7bba2a1

注意--prefix=/usr/local/nginx 要求是升级前的目录,--add-module=/usr/local/src/agentzh-headers-more-nginx-module-7bba2a1指向模块的解压目录。

等待命令完成过后进行编译

make

编译完成后objs下会生成nginx文件,这时需要备份原来的/usr/local/nginx/sbin下的nginx文件

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

然后把刚才编译的objs下的nginx复制到/usr/local/nginx/sbin/ cp /usr/local/src/nginx-0.7.66/objs/nginx /usr/local/nginx/sbin/

检查配置文件/usr/local/nginx/sbin/nginx -t

输出如下表示为正常。

the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok

the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully

执行kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`可以使旧的pid文件重命名为nginx.pid.oldbin,并依次启动新的nginx进程。此时新的进程和旧的进程会同时运行。要逐步停止旧版本的nginx进程,必须发送-WINCH信号给旧的进程,然后旧的工作进程将开始从容关闭。

kill -WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin`,过一段时间旧的进程处理完已经连接的请求后退出,就开始用新的进程接收请求了。

这时候,可以决定使用旧的版本还是新的版本了。 kill -HUP 旧的主进程号 不重载配置启动旧的工作进程 kill -QUIT 新的主进程号 从容关闭工作进程,新的工作进程退出后,旧的主进程会移除.oldbin,恢复它的.pid文件。 kill -TERM 新的主进程号 强制退出 如果升级成功,希望保留新的服务器时,可以发送QUIT信号给旧的主进程号,使其退出只留下新的服务器运行。

至此,升级完成。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档