文章目录

  • 一、Nginx 隐藏版本号:
  • 二、配置网页缓存时间:


一、Nginx 隐藏版本号:

和Apache一样,在生产环境中,需要隐藏 nginx 的版本号,以避免泄露 nginx 的版本,遭受不必要的攻击。

1、可以使用 fiddler 工具抓包查看 nginx版本;

2、也可以使用命令:curl -I 查看

nginx配置怎么屏蔽代码 nginx 屏蔽版本_nginx隐藏版本号


隐藏 nginx 版本号有两种方式,第一种:直接修改 Nginx 的主配置文件,让其不显示版本号即可;第二种:修改 Nginx 源码文件。

(1)修改 Nginx 主配置文件:

1、将 nginx 的配置文件中的 server_tokens 选项值设置为 off,如没有该选项,加上即可(注意是在http头部信息中)

server_tokens off

nginx配置怎么屏蔽代码 nginx 屏蔽版本_nginx配置怎么屏蔽代码_02

2、修改好配置文件之后,重启一下 nginx 服务即可;再用刚刚的命令查看版本号:

nginx配置怎么屏蔽代码 nginx 屏蔽版本_nginx服务优化_03


通过比较可以发现,修改配置文件之后,版本号就已经隐藏了。

(2)修改nginx 源码文件,源码文件中包含了版本信息,可以随意设置(自定义),然后再重新编译安装,就隐藏了真实的版本信息。

1、文件位置:nginx-1.12.2/src/core/nginx.h

修改版本号和服务器类型:

nginx配置怎么屏蔽代码 nginx 屏蔽版本_nginx隐藏版本号_04


2、重新编译

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

3、重新安装

make && make install

4、重启ngin服务

[root@Nginx ~]# systemctl stop nginx.service 
[root@Nginx ~]# systemctl start nginx.service

3、再用刚刚的命令查看版本号:

nginx配置怎么屏蔽代码 nginx 屏蔽版本_nginx页面缓存_05

二、配置网页缓存时间:

当nginx 将网页数据返回给客户端后,可设置缓存时间,以方便日后进行相同内容请求时直接返回,避免重复请求,加快访问速度,一般只针对静态资源进行设置,对动态网页不用设置缓存时间。

(1)第一步:以图片作为缓存对象,先复制一张图片到 Nginx 的工作目录,并用网站访问是否加载成功,用fiddler 工具进行抓包,查看相应报文,是否有图片缓存信息。

1、先复制一张图片到 nginx的工作目录:

nginx配置怎么屏蔽代码 nginx 屏蔽版本_nginx配置怎么屏蔽代码_06


nginx配置怎么屏蔽代码 nginx 屏蔽版本_nginx_07


2、用 fiddler工具进行抓包测试是否有缓存信息:

下面是未修改前的响应报文:

nginx配置怎么屏蔽代码 nginx 屏蔽版本_nginx隐藏版本号_08


(2)第二步:修改 Nginx的配置文件,在 location 段加入 expires参数,指定缓存时间。

location ~\.(gif|jepg|jpg|ico|bmp|png)$ {   //以各种格式结尾的图片
            root html;                       
            expires 1d;	                     //指定缓存时间,1天
}

nginx配置怎么屏蔽代码 nginx 屏蔽版本_nginx隐藏版本号_09


(3)第三步:重启 nginx服务,访问网页抓包。

[root@Nginx conf]# systemctl stop nginx.service 
[root@Nginx conf]# systemctl start nginx.service

一下是缓存修改后的响应报文:其中Cache-Control:max-age=86400,表示缓存时间是86400秒,即一天的时间。

nginx配置怎么屏蔽代码 nginx 屏蔽版本_nginx配置怎么屏蔽代码_10


(4)通过综上对比,设置缓存时间为一天后,就表示在一天内浏览器访问这个网页,都会使用缓存中的数据,而不需要向 nginx服务器重新发出请求了,减少了服务器的使用频度。