Nginx配置性能优化

 

Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

 

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

nginx官网地址:

http://nginx.org/

nginx的工作原理大家可以参考这一篇文章:http://blog.csdn.net/qq_39591494/article/details/78071417

一、隐藏nginx的版本信息

1)首先要下载nginx包这里以1.10.2为例;

 

# wget http://nginx.org/download/nginx-1.10.2.tar.gz
--2017-09-26 18:26:02--  http://nginx.org/download/nginx-1.10.2.tar.gz
正在解析主机 nginx.org (nginx.org)... 95.211.80.227, 206.251.255.63, 2001:1af8:4060:a004:21::e3, ...
正在连接 nginx.org (nginx.org)|95.211.80.227|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:http://124.205.69.169/files/9215000004BCB4F3/nginx.org/download/nginx-1.10.2.tar.gz [跟随至新的 URL]
--2017-09-26 18:26:03--  http://124.205.69.169/files/9215000004BCB4F3/nginx.org/download/nginx-1.10.2.tar.gz
正在连接 124.205.69.169:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:910812 (889K) [application/octet-stream]
正在保存至: “nginx-1.10.2.tar.gz”

100%[========================================================================================>] 910,812     4.63MB/s 用时 0.2s   

2017-09-26 18:26:03 (4.63 MB/s) - 已保存 “nginx-1.10.2.tar.gz” [910812/910812])

 

 

 

 

 

2)安装nginx所需的支持包

 

#yum install -y gcc gcc-c++ pcre-devel zlib-devel
已加载插件:fastestmirror, langpacks
base                                                                                                       | 3.6 kB  00:00:00     
extras                                                                                                     | 3.4 kB  00:00:00     
updates                                                                                                    | 3.4 kB  00:00:00     
(1/4): extras/7/x86_64/primary_db                                                                          | 112 kB  00:00:00     
(2/4): updates/7/x86_64/primary_db                                                                         | 2.9 MB  00:00:01     
(3/4): base/7/x86_64/group_gz                                                                              | 156 kB  00:00:02     
(4/4): base/7/x86_64/primary_db                                                                            | 5.7 MB  00:00:09     
Determining fastest mirrors
 * base: mirrors.neusoft.edu.cn
 * extras: mirrors.shuosc.org
 * updates: mirrors.shuosc.org
正在解决依赖关系
--> 正在检查事务
---> 软件包 gcc.x86_64.0.4.8.5-16.el7 将被 安装
--> 正在处理依赖关系 libgomp = 4.8.5-16.el7,它被软件包 gcc-4.8.5-16.el7.x86_64 需要

 

3)创建nginx用户

 

# useradd -M -s /sbin/nologin nginx

 

4)解压nginx并配置

 

# tar zxf nginx-1.10.2.tar.gz 
[root@yankerp ~]# cd nginx-1.10.2/
[root@yankerp nginx-1.10.2]# vi src/core/nginx.h    13行

 

#define nginx_version      1010002
#define NGINX_VERSION      "6.6.6"         #此行修改的是你想要的版本号
#define NGINX_VER          "YanKerp/" NGINX_VERSION     #此行修改的是你想修改的软件名称

 

Nginx配置性能优化_第1张图片
配置完以后我们继续配置错误码的返回文件定义了http错误码的返回,有时候我们页面程序出现错误,Nginx会代我们返回相应的错误代码,回显的时候,会带上nginx和版本号,我们把他隐藏起来

 

[root@yankerp nginx-1.10.2]# vim src/http/ngx_http_special_response.c    29行

 

#static u_char ngx_http_error_tail[] =
"
Yankerp
" CRLF "" CRLF "" CRLF

 

Nginx配置性能优化_第2张图片
修改完之后接下来安装nginx

 

 

yum -y install pcre*  openssl*

cd  nginx-1.10.2/

 

# ./configure --prefix=/usr/local/nginx   --user=nginx --group=nginx \
--withe-file-aio \
--with-http_ssl_module \
--ith-http_realip_module \
--ith-http_sub_module \
--ith-http_gzip_static_module \
--with-http_stub_status_module \
--with-pcre 

 

make && make install  过程需要几分钟

 

安装完后我们启动服务

 

# /usr/local/nginx/sbin/nginx  启动服务
# /usr/local/nginx/sbin/nginx -s stop  停止服务

 

测试是否隐藏了版本和软件名

 

# curl -I 192.168.79.130
HTTP/1.1 200 OK
Server: YanKerp/6.6.6
Date: Tue, 26 Sep 2017 11:03:34 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 26 Sep 2017 10:56:45 GMT
Connection: keep-alive
ETag: "59ca326d-264"
Accept-Ranges: bytes

 

我们拿浏览器进行错误代码测试

 

Nginx配置性能优化_第3张图片

看到此页面说明我们之前设置的是没有问题的已经成功隐藏

二、 expires缓存调优
缓存,主要针对于图片,css,js等元素更改机会比较少的情况下使用,特别是图片,占用带宽大,我们完全可以设置图片在浏览器本地缓存30d,这样用户第一次打开加载慢一点,第二次,就非常快了!缓存的时候,我们需要将需要缓存的拓展名列出来!
Expires缓存配置在server字段里面
修改配置文件vim /usr/local/nginx/conf/nginx.conf
在57行添加             
location~* .(ico|gif|bmp|jpg|jpeg|png|swf|js|css|mp3) {  * 代表所有   . 代表后缀
  root html;
  expires30d;
}
修改完配置文件放一个图片到网站根目录下(/usr/local/nginx/html),然后重启服务,网页测试
-s  reload

expire功能优点
(1)expires可以降低网站购买的带宽,节约成本
(2)同时提升用户访问体验
(3)减轻服务的压力,节约服务器成本,甚至可以节约人力成本,是web服务非常重要的功能

Nginx配置性能优化_第4张图片

 

以上30d 表示30天。

 

修改完成之后 -s reload加载nginx主配置文件

接下来我们往/usr/local/nginx/html放一个JPG的图片然后去访问

Nginx配置性能优化_第5张图片

其实现在已经建立缓存30天了,需要看到效果可以使用yslow查看页面缓存时间,由于我这边网速很差很差。所以我这边没法下载yslow插件,我给大家找了一个yslow查看缓存的图片如下:

Nginx配置性能优化_第6张图片

yslow官网:http://yslow.org/ 

希望对您有所帮助,再见~

 

 

 

 

 

 

你可能感兴趣的:(Nginx,Linux,Linux入门到熟练)