最近服务器上发现了/var/tmp/nginx目录下有东西被linux服务器定时清理掉了,导致前端页面访问服务器接口的时候报错了。现在要对nginx目录重新编译一遍,重新指定http-client-body-temp-path, http-proxy-temp-path, http-fastcgi-temp-path, http-uwsgi-temp-path几个编译参数
重新编译
首先要找到当初源码编译的时候的编译安装命令。如:
1 | ./configure |
这里也提醒了我们,在服务器上安装任何东西的时候,都要做好安装笔记,防止后面的时候需要用到的时候丢失!!!
这里忘了也没有关系,使用nginx -V命令中能够查看到当初的编译命令配置
进入nginx源码包
如果源码包被清理掉了,那就重新下载新的源码包。
查看nginx版本
1
2
3
4
5
6
7 [root@izbp1j3sk6yysftuzun199z sbin]
nginx version: nginx/1.9.9
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
[root@izbp1j3sk6yysftuzun199z sbin]
使用
wget http://nginx.org/download/nginx-1.9.9.tar.gz下载
进入nginx源码包,将要编译的参数修改后,新增的参数追加在后面
1 | ./configure |
再执行make命令
注意:千万不要执行
make install,否则就覆盖安装了
1 | [root@izbp1j3sk6yysftuzun199z nginx-1.9.9] |
make执行完成之后,源码目录会生成一个objs目录,里面有个nginx可执行文件,这个就是我们需要的新版本程序了。接下来我们就可以准备将新版本的nginx替换掉老版本的nginx了。
1 | [root@izbp1j3sk6yysftuzun199z nginx-1.9.9] |
备份老版本的nginx
先将老版本的nginx进行备份,防止出现了问题,好进行复原操作。
1 | [root@izbp1j3sk6yysftuzun199z objs]# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/nginx.bak |
覆盖旧的nginx
1 | [root@izbp1j3sk6yysftuzun199z objs]# cp ./nginx /usr/local/nginx/sbin/nginx |
如果提示文本文件忙的错误,建议以下命令:
1 | [root@izbp1j3sk6yysftuzun199z objs]# cp ./nginx /usr/local/nginx/sbin/nginx |
测试新的nginx程序是否正确
1 | [root@izbp1j3sk6yysftuzun199z nginx] |
使用nginx -s reload顺滑重新启动nginx
1 | [root@iZbp1h1kfgutxc4i1si300Z nginx]# ps -ef|grep nginx |
参考文章:
- https://www.cnblogs.com/effortsing/p/10012359.html
- https://blog.csdn.net/li_adou/article/details/78468451