一、 Nginx 的优化
1、 编译安装前优化
编译前的优化主要是用来修改程序名等等, 目的更改源码隐藏软件名称和版本号
安装 zlib-devel、 pcre-devel 等依赖包
[root@www ~]# yum -y install gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel openssl
openssl-devel
下载 nginx 的源码包: http://nginx.org/download
解压源码包:
[root@www ~]# tar zxf nginx-1.10.2.tar.gz
[root@www ~]# cd nginx-1.10.2/
隐藏软件名称和版本号
[root@www nginx-1.10.2]# vim src/core/nginx.h
//此行修改的是你想要的版本
#define NGINXVERSION "1.10.2" //第 13 行
//此行修改的是你想修改的软件名称
#define NGINXVER "nginx/" NGINXVERSION //第 14 行
修改上面的信息, 即可更改 nginx 显示版本。 例如: (curl –I 可看到, 请求头和响应头显示)
#define NGINXVERSION "7.0"
#define NGINXVER "IIS/" NGINXVERSION
修改 HTTP 头信息中的 connection 字段,防止回显具体版本号
拓展:通用 http 头 , 通用头包含请求和响应消息都支持的头,通用头包含 Cache-Control、
Connection、 Date、 Pragma、 Transfer-Encoding、 Upgrade、 Via。对通用头的扩展要求通讯双
方都支持此扩展,如果存在不支持的通用头,一般将会作为实体头处理。那么也就是说有部
分设备,或者是软件,能获取到 connection,部分不能,要隐藏就要彻底!
[root@www nginx-1.10.2]# vi src/http/ngxhttpheaderfiltermodule.c
修改前:
static char ngxhttpserverstring[] = "Server: nginx" CRLF; //第 49 行
修改后:
static char ngxhttpserverstring[] = "Server: IIS" CRLF;
定义了 http 错误码的返回:
有时候我们页面程序出现错误, Nginx 会代我们返回相应的错误代码,回显的时候,会带上
nginx 和版本号,我们把他隐藏起来
[root@www nginx-1.10.2]# vi src/http/ngxhttpspecialresponse.c
修改前
static uchar ngxhttperrortail[] = //第 29 行
"nginx " CRLF
"