首先获取之前的编译参数,生产环境中应记录好这一数据,同时保留好编译环境。
nginx -V
备份当前的nginx文件
cp /usr/local/nginx/sbin/nginx /opt/nginx.bak.20190522
编译并make
./configure --user=www --group=www --prefix=/usr/local/nginx --add-module=../ngx_cache_purge-2.3 --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_sub_module --add-module=../headers-more-nginx-module
我这里添加了一个模块https://github.com/openresty/headers-more-nginx-module
make
然后用/XXX/objs/nginx
复制到nginx目录进行覆盖升级。
cp /opt/nginx/objs/nginx /usr/local/nginx/sbin/nginx
kill -USR2 `cat /var/run/nginx.pid` #在老的进程号基础上启动新的进程
kill -QUIT `cat /var/run/nginx.pid.oldbin` #正常关闭老进程
到此升级完成。
用法:
去掉这些头信息
more_clear_headers 'X-Powered-By';
more_clear_headers 'X-AspNet-Version';
more_clear_headers 'X-AspNetMvc-Version';
也可以使用下面的方法
proxy_hide_header 与fastcgi_hide_header的使用。
proxy_hide_header在ngx_http_proxy_module下,fastcgi_hide_header在ngx_http_fastcgi_module模块下,作用相同的但是作用的地方有一些区别。
当nginx作为反向代理时,也就是nginx转发请求后端其他webserver(例如nginx+apache)时,当我们想要隐藏后端webserver主机信息的时候,我们使用proxy_hide_header来屏蔽后端主机信息。
当nginx作为webserver时,也就是nginx直接在服务器上提供web服务(例如nginx+php/php-fpm)处理用户请求,当我们想要隐藏webserver主机信息的时候,我们使用fastcgi_hide_header来屏蔽当前主机信息(尤其是php中相关信息)。
proxy_hide_header X-Powered-By;