文章目录
- 一、Nginx 隐藏版本号:
- 二、配置网页缓存时间:
一、Nginx 隐藏版本号:
和Apache一样,在生产环境中,需要隐藏 nginx 的版本号,以避免泄露 nginx 的版本,遭受不必要的攻击。
1、可以使用 fiddler 工具抓包查看 nginx版本;
2、也可以使用命令:curl -I 查看
隐藏 nginx 版本号有两种方式,第一种:直接修改 Nginx 的主配置文件,让其不显示版本号即可;第二种:修改 Nginx 源码文件。
(1)修改 Nginx 主配置文件:
1、将 nginx 的配置文件中的 server_tokens 选项值设置为 off,如没有该选项,加上即可(注意是在http头部信息中)
server_tokens off
2、修改好配置文件之后,重启一下 nginx 服务即可;再用刚刚的命令查看版本号:
通过比较可以发现,修改配置文件之后,版本号就已经隐藏了。
(2)修改nginx 源码文件,源码文件中包含了版本信息,可以随意设置(自定义),然后再重新编译安装,就隐藏了真实的版本信息。
1、文件位置:nginx-1.12.2/src/core/nginx.h
修改版本号和服务器类型:
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 将网页数据返回给客户端后,可设置缓存时间,以方便日后进行相同内容请求时直接返回,避免重复请求,加快访问速度,一般只针对静态资源进行设置,对动态网页不用设置缓存时间。
(1)第一步:以图片作为缓存对象,先复制一张图片到 Nginx 的工作目录,并用网站访问是否加载成功,用fiddler 工具进行抓包,查看相应报文,是否有图片缓存信息。
1、先复制一张图片到 nginx的工作目录:
2、用 fiddler工具进行抓包测试是否有缓存信息:
下面是未修改前的响应报文:
(2)第二步:修改 Nginx的配置文件,在 location 段加入 expires参数,指定缓存时间。
location ~\.(gif|jepg|jpg|ico|bmp|png)$ { //以各种格式结尾的图片
root html;
expires 1d; //指定缓存时间,1天
}
(3)第三步:重启 nginx服务,访问网页抓包。
[root@Nginx conf]# systemctl stop nginx.service
[root@Nginx conf]# systemctl start nginx.service
一下是缓存修改后的响应报文:其中Cache-Control:max-age=86400,表示缓存时间是86400秒,即一天的时间。
(4)通过综上对比,设置缓存时间为一天后,就表示在一天内浏览器访问这个网页,都会使用缓存中的数据,而不需要向 nginx服务器重新发出请求了,减少了服务器的使用频度。