Nginx源码安装及调优配置(一)

时间:16-09-13 来源: 作者: 点击:

纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。

导读由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置。

Nginx编译前的优化

[root@linuxprobe ~]# wget
[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
……
Server: bfe/1.0.8.14
……
[root@linuxprobe nginx-1.10.1]# curl -I
……
Server: nginx
……
[root@linuxprobe nginx-1.10.1]# curl -I
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.
  • 目的更改源码隐藏软件名称和版本号

  • #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[] ="<hr><center>" NGINX_VER "</center>" CRLF
    "</body>" CRLF
    "</html>" CRLF;

    修改后

    static u_char ngx_http_error_tail[] ="<hr><center>LinuxprobeWeb</center>" CRLF
    "</body>" CRLF
    "</html>" CRLF;

    Nginx正式安装

    电脑在线阅读效果更佳:

    按住图片3秒,即可自动关注。

    点击左下角查看更多热门技术干货

    声明:本文转载于网络,文章链接:http://www.nd9p.com/6580.html