定制NGINX的Header返回信息
因为通常我们不愿意把服务器所使用的版本信息 服务器web软件信息
返回给用户 这样可以避免很多安全性问题
因为对方无法判断你的web服务器是什么软件 什么版本
也就少了很多入侵的可能性
比如 我们使用 curl -I www.baidu.com
[root@host194 ~]# curl -I www.baidu.com
HTTP/1.1 200 OK
Date: Mon, 02 Apr 2012 12:20:58 GMT
Server: BWS/1.0
Content-Length: 7869
Content-Type: text/html;charset=gb2312
Cache-Control: private
Expires: Mon, 02 Apr 2012 12:20:58 GMT
Set-Cookie: BAIDUID=015BC91EC78AAA90FAE9AAAF4DF1043F:FG=1; expires=Mon, 02-Apr-42 12:20:58 GMT; path=/; domain=.baidu.com
P3P: CP=” OTI DSP COR IVA OUR IND COM ”
Connection: Keep-Alive
可以返回百度使用的web服务器为 BWS/1.0
因为这个是他们自己开发定制的 全称为Baidu Web Service 版本为1.0
那么如何修改掉这个header头呢?
我们以Nginx为例
先安装nginx的依赖包
yum install -y lynx pcre* openssl* zlib*
在安装 nginx
我们以编译方式安装
$ cd /usr/local/src
$ wget http://nginx.org/download/nginx-1.0.13.tar.gz
$ tar -xzf nginx-1.0.13.tar.gz
$ cd nginx-*
$ ./configure
$ make
$ make install
接着在下载 NginX headers-more 模块
开源官方网站为 https://github.com/agentzh/headers-more-nginx-module
$ cd /usr/local/src
$ lynx https://github.com/agentzh/headers-more-nginx-module/zipball/v0.17rc1
把解压的文件移动到nginx的MOD目录
$ mkdir /usr/local/nginx/mod
$ unzip agentzh-headers-more-nginx-module-v0.17rc1-0-g3580526.zip
$ mv agentzh-headers-more-nginx-module-3580526 headers-more
$ mv headers-more /usr/local/nginx/mod
重新在编译一次 注意这个时候需要指定模块 否则无法自动编译
$ cd /usr/local/src/nginx*
$ ./configure –add-module=/usr/local/nginx/mod/headers-more/
$ make
$ make install
现在我们添加一个虚拟主机
$ useradd -m mywebs
$ mkdir /home/mywebs/public_html | mkdir /home/mywebs/logs
$ touch /home/mywebs/logs/access_log | touch /home/mywebs/logs/error_log
$ chown mywebs.mywebs * -R
$ chmod 755 /home/mywebs
nginx.conf 的配置文件为
user nobody;
worker_processes 1;error_log logs/error.log info;
events {
worker_connections 1024;
}http {
#下面第一条就是你的web服务器名字 可以直接修改
more_set_headers “Server: HostSoft Web Server”;
server_names_hash_max_size 2048;
include mime.types;
default_type application/octet-stream;log_format main ‘$remote_addr – $remote_user [$time_local] $status ‘
‘”$request” $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;sendfile on;
tcp_nopush on;keepalive_timeout 10;
gzip on;
server {
# this is your access logs location
access_log /home/mywebs/logs/access_log;
# this is your error logs location
error_log /home/mywebs/logs/error_log warn;
listen 80;
# change to your domain
server_name mywebserver.net www.mywebserver.net;location / {
# this is your public_html directory
root /home/mywebs/public_html;
index index.html index.htm;
}
}
}
好了 现在我们先测试下配置文件是不是正确
/usr/local/nginx/sbin/nginx -t
然后在启动
/usr/local/nginx/sbin/nginx
这个时候使用 curl -I www.你的域名.com 测试 返回
Date: Tue, 13 Mar 2012 04:50:14 GMT
Connection: keep-alive
Content-Length: 23
Last-Modified: Tue, 13 Mar 2012 04:29:33 GMT
Server: HostSoft Web Server
Content-Type: text/html
Accept-Ranges: bytes
改了吧?
我们还可以设置
more_clear_headers “Content-Type: “;
more_clear_headers “Accept-Ranges: “;
more_clear_headers “Content-Length: “;
这样就不会返回这些信息了
返回的 应该是
Date: Tue, 13 Mar 2012 04:50:14 GMT
Connection: keep-alive
Last-Modified: Tue, 13 Mar 2012 04:29:33 GMT
Server: HostSoft Web Server
相关:
- nginx header
- 如何改nginx名称
- nginx修改header
- nginx 按照机子名字
- nginx http头
- nginx content-length
- nginx conf P3P
- inr1r
- good6oe
- brightv2l