工作中,难免遇到要求“苛刻”的客户,客户不想让人看到服务名称或服务版本相关信息,对于此合理要求,我们可以这样做。
1. 编辑nginx.conf 配置文件,新增参数隐藏Nginx软件版本号信息:
server_tokens off;
}
重启Nginx服务后,效果如图示(已看不到版本号信息了):
参数的作用:启用或禁用Nginx的版本信息显示在报错信息和server的响应首部位置中,未配置此参数时,Nginx默认此参数是启用状态。
官网描述:http://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens
2. 更改源码隐藏Nginx软件名及版本号
软件名称的修改一般情况下不会有配置参数和入口,Nginx也不例外,因此需要更改Nginx源码来实现隐藏Nginx软件名称。方法如下:
1)依次修改3个Nginx源码文件
a. 修改的第一个文件是 /nginx-1.10.1/src/core/nginx.h 修改如图中红框部分
将 #define NGINX_VERSION 值修改为 “XXX”,#define NGINX_VER 值修改为 “AAA/”,#define NGINX_VAR 值修改为 “AAA”。
b. 修改的第二个文件是 nginx-1.10.1/src/http/ngx_http_header_filter_module.c 修改如图中红框部分,将 nginx 修改为 “AAA”。
2)修改后编译软件,使其生效
修改后再编译安装软件,如果是已安装好的服务,需要重新编译Nginx,配好配置,启动服务。
关于账号使用方面
3. 更改Nginx服务的默认用户
1)为Nginx服务建立新用户
# 这里不需要有系统登录权限,应当禁止其登录能力,相当于Apache里的用户
2)配置Nginx服务,让其使用刚建立的nginx用户。更改Nginx服务默认使用的用户,方法有两种:
a. 第一种方法为直接更改配置文件参数,将默认的#user nobody。改为如下的内容:
b. 第二种方法为直接在编译Nginx软件时指定编译的用户和组,命令如下:
# 前面在编译Nginx时,就是这么处理的,因此无论配置文件中是否加参数,默认都是Nginx用户。
c. 检查更改用户的效果,查看Nginx服务进程的对应用户,如下:
Nginx的主进程master仍然是以root身份运行的,worker进程是以nginx用户运行的。
原创文章,作者:iConan,如若转载,请注明出处:https://www.aspyc.com/archives/254.html