阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx版本号修改隐藏及记录用户请求需要的时间

432次阅读
没有评论

共计 4689 个字符,预计需要花费 12 分钟才能阅读完成。

原因:

目前选择用 nginx 的越来越多了,无论其 web 处理,反代,负载方面均展现独特的魅力,但是往往很多人喜欢直接用基本的参数实现 Nginx 功能。这其中还要注意一些细节。

话不多说,切入正题,今天讨论两个问题

1、nginx 版本号修改和隐藏

好处:加强安全,防止一些人找到指定版本漏洞进行攻击。

2、记录每个 request 花费时间:

更详细知道请求需要的时间。

1、nginx 版本号修改和隐藏

1、1)nginx 版本号修改

查看当前 Nginx 版本号和编译信息

[root@nginx sbin]# /usr/local/nginx/sbin/nginx  -V

nginx version: nginx/1.9.2

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: –user=nginx –group=nginx –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_realip_module

[root@nginx sbin]#

上面可以看到,Nginx 版本是 1.9.2,下面还有编译 Nginx 的一些参数。

那么风险就来了:

1)当后端程序停止,或者压力测试等情况,Nginx 的版本号会很快速的暴露。

2)curl 或者一些工具很轻松获取你的 Nginx 版本信息

3)再或者说,你根本不想人家知道你用的 Nginx 等

处理方式:

编辑 nginx 源码中的 src/core/nginx.h 头文件

Nginx 版本号修改隐藏及记录用户请求需要的时间

修改为(自己可任意修改)

Nginx 版本号修改隐藏及记录用户请求需要的时间

需要重新编译安装(线上业务注意不要乱搞,除非自己很熟练,可以做到平滑修改)

[root@nginx nginx-1.9.2]# /usr/local/nginx/sbin/nginx -V

nginx version: IIS/IIS

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: –user=nginx –group=nginx –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_realip_module

[root@nginx nginx-1.9.2]#

Nginx 版本号修改隐藏及记录用户请求需要的时间

Nginx 版本号修改隐藏及记录用户请求需要的时间

[root@nginx conf]# curl -I 192.168.1.223

HTTP/1.1 200 OK

Server: IIS/IIS

Date: Fri, 25 Mar 2016 21:31:38 GMT

Content-Type: text/html

Content-Length: 612

Last-Modified: Thu, 24 Mar 2016 21:38:26 GMT

Connection: keep-alive

ETag: “56f45e52-264”

Accept-Ranges: bytes

[root@nginx conf]#

1.2)Nginx 版本号隐藏

nginx 的 HttpCoreModule 提供了一条叫做 server_tokens 指令,我这要将这条指令设置为“server_tokens off”就可以了。

1、修改 nginx.conf

http 区段中插入 server_tokens  off;

#2、编辑 php-fpm 配置文件,如 fastcgi.conf(更深入的话,当然也可以不做这一步)

找到:

fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

改为:

fastcgi_param SERVER_SOFTWARE nginx;

3、重启或者 reloadNginx 即可。

2、记录访问日志中每个请求的时间

[root@nginx ~]# tail -f /usr/local/nginx/logs/access.log

192.168.1.243 – -[26/Mar/2016:05:08:23 +0800] “GET /test HTTP/1.1″ 302 160″-” “Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36” “-“

192.168.1.243 – -[26/Mar/2016:05:08:34 +0800] “GET / HTTP/1.1″ 304 0″-” “Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36” “-“

192.168.1.243 – -[26/Mar/2016:05:08:41 +0800] “GET /index.php HTTP/1.1″ 302 160″-” “Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36” “-“

Nginx 版本号修改隐藏及记录用户请求需要的时间

查看 Nginx 日志相关访问记录:(默认格式)

log_format access ‘$remote_addr – $remote_user[$time_local] “$request” ‘

                        ‘$status $body_bytes_sent”$http_referer” ‘

                        ‘”$http_user_agent” “$http_x_forwarded_for” ‘;

access_log logs/access.log access;

修改为:

log_format access ‘$remote_addr – $remote_user [$time_local] ‘ ‘”$request” $status $body_bytes_sent ‘

‘”$http_referer” “$http_user_agent”‘ ‘ elapsed=${request_time}s’;(注意 Apache 此参数是 us)

access_log logs/access.log access;

检测 Nginx 配置文件,并重新启动服务(重装也可以)

[root@nginx ~]# /usr/local/nginx/sbin/nginx -t

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

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@nginx ~]# /etc/init.d/nginx reload

[root@nginx ~]#

[root@nginx logs]# tail -f access.log

192.168.1.243 – – [22/Nov/2016:10:45:52 +0800] “GET / HTTP/1.1” 304 0 “-” “Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36” elapsed=0.000s

192.168.1.243 – – [22/Nov/2016:10:45:52 +0800] “GET / HTTP/1.1” 304 0 “-” “Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36” elapsed=0.000s

192.168.1.243 – – [22/Nov/2016:10:45:54 +0800] “GET / HTTP/1.1” 304 0 “-” “Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36” elapsed=0.000s

Nginx 版本号修改隐藏及记录用户请求需要的时间

日志相关参数官网给的解释是:Module ngx_http_log_module

$remote_addr, $http_x_forwarded_for 记录客户端 IP

$remote_user 记录客户端用户名称

$time_local 通用日志格式下的本地时间

$request 记录请求的 URL 和 HTTP Protocol

$status 记录请求状态

$body_bytes_sent 发送给客户端的 Bytes,不包括 Header 的大小;该变数与 Apache mod_log_config 的 “%B” 相容

$bytes_sent 发送给客户端的 总 Bytes 数

$connection 连接的序列号

$connection_requests 当前通过一个连接获得的请求数量

$msec 日志写入时间。单位为秒,精度是毫秒

$pipe 如果请求是通过 HTTP 流水线 (pipelined) 发送,pipe 值为 ”p”,否则为 ”.”

$http_referer 记录从哪个页面链接访问过来的

$http_user_agent 记录客户端浏览器相关信息

$request_length 请求的长度(包括请求行,请求头和请求正文)

$request_time 请求处理时间,单位为秒,精度毫秒;从读入客户端的第一个位元组开始,直到把最后一个字元发送给客户端后进行日志写入为止

$time_iso8601 ISO8601 标准格式下的本地时间

Nginx 对./connfigue 支持的参数(可 –help 查看)

Nginx 版本号修改隐藏及记录用户请求需要的时间

Nginx 版本号修改隐藏及记录用户请求需要的时间

Nginx 版本号修改隐藏及记录用户请求需要的时间

Nginx 版本号修改隐藏及记录用户请求需要的时间

Nginx 版本号修改隐藏及记录用户请求需要的时间

Nginx 版本号修改隐藏及记录用户请求需要的时间

查看 Nginx 安装了那些模块

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

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@nginx ~]# /etc/init.d/nginx reload

[root@nginx ~]#

[root@nginx ~]# /usr/local/nginx/sbin/nginx -V

nginx version: IIS/IIS

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: –user=nginx –group=nginx –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_realip_module

[root@nginx ~]#

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/141044.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4689字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7964581
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...