Nginx配置性能优化

时间:2022-08-12 05:56:51
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配置性能优化
配置完以后我们继续配置错误码的返回文件定义了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[] =
"<hr><center>Yankerp</center>" CRLF
"</body>" CRLF
"</html>" CRLF

Nginx配置性能优化
修改完之后接下来安装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配置性能优化

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

二、 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配置性能优化

以上30d 表示30天。

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

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

Nginx配置性能优化

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

Nginx配置性能优化

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

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