Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,本篇文章重点为大家讲解一下源码安装Nginx并进行调优具体方法。
Nginx编译前的优化
[root@linuxprobe ~]# wget http://nginx.org/download/nginx-1.10.1.tar.gz
[root@linuxprobe ~]# tar xvf nginx-1.10.1.tar.gz -C /usr/local/src/
[root@linuxprobe ~]# cd /usr/local/src/nginx-1.10.1/
编译前的优化主要是用来修改程序名等等,例如:
[root@linuxprobe nginx-1.10.1]# curl -I http://www.baidu.com
……
Server: bfe/1.0.8.14
……
[root@linuxprobe nginx-1.10.1]# curl -I http://www.sina.com.cn
……
Server: nginx
……
[root@linuxprobe nginx-1.10.1]# curl -I https://www.linuxprobe.com
HTTP/1.1 200 OK
Server: nginx/1.10.1 #我们目标是将nginx更改名字
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.29
Set-Cookie: PHPSESSID=smm0i6u4f9v7bj0gove79ja1g7; path=/
Cache-Control: no-cache
Date: Mon, 07 Seq 2016 06:09:11 GMT
[root@linuxprobe nginx-1.10.1]# vim src/core/nginx.h
目的更改源码隐藏软件名称和版本号
#define NGINX_VERSION “nginx_stable” #此行修改的是你想要的版本号
#define NGINX_VER “linuxprobe/” NGINX_VERSION #此行修改的是你想修改的软件名称
[root@linuxprobe nginx-1.10.1]# vim +49 src/http/ngx_http_header_filter_module.c
修改HTTP头信息中的connection字段,防止回显具体版本号
拓展:通用http头域
通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-Control、 Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。对通用头域的扩展要求通讯双方都支持此扩展,如果存在不支持的通用头域,一般将会作为实体头域处理。那么也就是说有部分设备,或者是软件,能获取到connection,部分不能,要隐藏就要彻底!
static char ngx_http_server_string[] = “Server: LinuxprobeWeb” CRLF;
[root@linuxprobe nginx-1.10.1]# vim +29 src/http/ngx_http_special_response.c
定义了http错误码的返回
有时候我们页面程序出现错误,Nginx会代我们返回相应的错误代码,回显的时候,会带上nginx和版本号,我们把他隐藏起来
static u_char ngx_http_error_full_tail[] =
"
" NGINX_VER "" CRLF
"