Nginx服务器优化,以提升服务器的处理性能

使用2台RHEL7虚拟机,其中一台作为Nginx服务器(192.168.4.5)、另外一台作为测试用的Linux客户机(192.168.4.100),如图-1所示。

图-1

Nginx优化主要从配置文件着手,常见优化参数如下:

  • worker_processes //与CPU核心数量一致
  • worker_connections //每个worker最大并发连接数
  • server_tokens //服务器版本号信息
  • client_header_buffer_size //默认请求包头信息的缓存
  • large_client_header_buffers //大请求包头部信息的缓存个数与容量
  • error_page 404 //自定义404错误页面


步骤一:构建Nginx服务器

1)源码安装Nginx软件


    
    
  1. [root@svr5 ~]# yum -y install gcc pcre-devel openssl-devel        //安装常见依赖包
  2. [root@svr5 ~]# useradd -s /sbin/nologin nginx
  3. [root@svr5 ~]# tar -zxvf nginx-1.8.0.tar.gz
  4. [root@svr5 ~]# cd nginx-1.8.0
  5. [root@svr5 nginx-1.8.0]# ./configure \
  6. > --prefix=/usr/local/nginx \                //指定安装路径
  7. > --user=nginx \                            //指定用户
  8. > --group=nginx \                            //指定组
  9. > --with-http_ssl_module                        //开启SSL加密功能
  10. [root@svr5 nginx-1.8.0]# make && make install    //编译并安装

2)启用Nginx服务并查看监听端口状态


    
    
  1. [root@svr5 ~]# /usr/local/nginx/sbin/nginx
  2. [root@svr5 ~]# netstat -anptu | grep nginx
  3. tcp        0        0 0.0.0.0:80        0.0.0.0:*        LISTEN        10441/nginx

步骤二:优化前从客户机访问Nginx服务器测试

1)使用ab高并发测试


    
    
  1. [root@svr100 ~]# ab –n 2000 –c 2000 http://192.168.4.5/
  2. Benchmarking 192.168.4.5 (be patient)
  3. socket: Too many open files (24)                //提示打开文件数量过多

2)使用脚本测试长头部请求是否能获得响应


  
  
  1. [root@svr100 ~]# cat buffer.sh
  2. #!/bin/bash
  3. URL=http://192.168.4.5/index.html?
  4. for i in {1..5000}
  5. do
  6.     URL=${URL}v$i=$i
  7. done
  8. curl $URL
  9. [root@svr100 ~]# chmod +x buffer.sh
  10. [root@svr100 ~]# ./ buffer.sh
  11. .. ..
  12. <center><h1>414 Request-URI Too Large</h1></center>        //提示头部信息过大
--------------------------------------

步骤一:构建Nginx服务器

1)源码安装Nginx软件


    
    
  1. [root@svr5 ~]# yum -y install gcc pcre-devel openssl-devel        //安装常见依赖包
  2. [root@svr5 ~]# useradd -s /sbin/nologin nginx
  3. [root@svr5 ~]# tar -zxvf nginx-1.8.0.tar.gz
  4. [root@svr5 ~]# cd nginx-1.8.0
  5. [root@svr5 nginx-1.8.0]# ./configure \
  6. > --prefix=/usr/local/nginx \                //指定安装路径
  7. > --user=nginx \                            //指定用户
  8. > --group=nginx \                            //指定组
  9. > --with-http_ssl_module                        //开启SSL加密功能
  10. [root@svr5 nginx-1.8.0]# make && make install    //编译并安装

2)启用Nginx服务并查看监听端口状态


    
    
  1. [root@svr5 ~]# /usr/local/nginx/sbin/nginx
  2. [root@svr5 ~]# netstat -anptu | grep nginx
  3. tcp        0        0 0.0.0.0:80        0.0.0.0:*        LISTEN        10441/nginx

步骤二:优化前从客户机访问Nginx服务器测试

1)使用ab高并发测试


    
    
  1. [root@svr100 ~]# ab –n 2000 –c 2000 http://192.168.4.5/
  2. Benchmarking 192.168.4.5 (be patient)
  3. socket: Too many open files (24)                //提示打开文件数量过多

2)使用脚本测试长头部请求是否能获得响应


  
  
  1. [root@svr100 ~]# cat buffer.sh
  2. #!/bin/bash
  3. URL=http://192.168.4.5/index.html?
  4. for i in {1..5000}
  5. do
  6.     URL=${URL}v$i=$i
  7. done
  8. curl $URL
  9. [root@svr100 ~]# chmod +x buffer.sh
  10. [root@svr100 ~]# ./ buffer.sh
  11. .. ..
  12. <center><h1>414 Request-URI Too Large</h1></center>        //提示头部信息过大

步骤一:构建Nginx服务器

1)源码安装Nginx软件


    
    
  1. [root@svr5 ~]# yum -y install gcc pcre-devel openssl-devel        //安装常见依赖包
  2. [root@svr5 ~]# useradd -s /sbin/nologin nginx
  3. [root@svr5 ~]# tar -zxvf nginx-1.8.0.tar.gz
  4. [root@svr5 ~]# cd nginx-1.8.0
  5. [root@svr5 nginx-1.8.0]# ./configure \
  6. > --prefix=/usr/local/nginx \                //指定安装路径
  7. > --user=nginx \                            //指定用户
  8. > --group=nginx \                            //指定组
  9. > --with-http_ssl_module                        //开启SSL加密功能
  10. [root@svr5 nginx-1.8.0]# make && make install    //编译并安装

2)启用Nginx服务并查看监听端口状态


    
    
  1. [root@svr5 ~]# /usr/local/nginx/sbin/nginx
  2. [root@svr5 ~]# netstat -anptu | grep nginx
  3. tcp        0        0 0.0.0.0:80        0.0.0.0:*        LISTEN        10441/nginx

步骤二:优化前从客户机访问Nginx服务器测试

1)使用ab高并发测试


    
    
  1. [root@svr100 ~]# ab –n 2000 –c 2000 http://192.168.4.5/
  2. Benchmarking 192.168.4.5 (be patient)
  3. socket: Too many open files (24)                //提示打开文件数量过多

2)使用脚本测试长头部请求是否能获得响应


  
  
  1. [root@svr100 ~]# cat buffer.sh
  2. #!/bin/bash
  3. URL=http://192.168.4.5/index.html?
  4. for i in {1..5000}
  5. do
  6.     URL=${URL}v$i=$i
  7. done
  8. curl $URL
  9. [root@svr100 ~]# chmod +x buffer.sh
  10. [root@svr100 ~]# ./ buffer.sh
  11. .. ..
  12. <center><h1>414 Request-URI Too Large</h1></center>        //提示头部信息过大

步骤一:构建Nginx服务器

1)源码安装Nginx软件


    
    
  1. [root@svr5 ~]# yum -y install gcc pcre-devel openssl-devel        //安装常见依赖包
  2. [root@svr5 ~]# useradd -s /sbin/nologin nginx
  3. [root@svr5 ~]# tar -zxvf nginx-1.8.0.tar.gz
  4. [root@svr5 ~]# cd nginx-1.8.0
  5. [root@svr5 nginx-1.8.0]# ./configure \
  6. > --prefix=/usr/local/nginx \                //指定安装路径
  7. > --user=nginx \                            //指定用户
  8. > --group=nginx \                            //指定组
  9. > --with-http_ssl_module                        //开启SSL加密功能
  10. [root@svr5 nginx-1.8.0]# make && make install    //编译并安装

2)启用Nginx服务并查看监听端口状态


    
    
  1. [root@svr5 ~]# /usr/local/nginx/sbin/nginx
  2. [root@svr5 ~]# netstat -anptu | grep nginx
  3. tcp        0        0 0.0.0.0:80        0.0.0.0:*        LISTEN        10441/nginx

步骤二:优化前从客户机访问Nginx服务器测试

1)使用ab高并发测试


    
    
  1. [root@svr100 ~]# ab –n 2000 –c 2000 http://192.168.4.5/
  2. Benchmarking 192.168.4.5 (be patient)
  3. socket: Too many open files (24)                //提示打开文件数量过多

2)使用脚本测试长头部请求是否能获得响应


  
  
  1. [root@svr100 ~]# cat buffer.sh
  2. #!/bin/bash
  3. URL=http://192.168.4.5/index.html?
  4. for i in {1..5000}
  5. do
  6.     URL=${URL}v$i=$i
  7. done
  8. curl $URL
  9. [root@svr100 ~]# chmod +x buffer.sh
  10. [root@svr100 ~]# ./ buffer.sh
  11. .. ..
  12. <center><h1>414 Request-URI Too Large</h1></center>        //提示头部信息过大

步骤一:构建Nginx服务器

1)源码安装Nginx软件


    
    
  1. [root@svr5 ~]# yum -y install gcc pcre-devel openssl-devel        //安装常见依赖包
  2. [root@svr5 ~]# useradd -s /sbin/nologin nginx
  3. [root@svr5 ~]# tar -zxvf nginx-1.8.0.tar.gz
  4. [root@svr5 ~]# cd nginx-1.8.0
  5. [root@svr5 nginx-1.8.0]# ./configure \
  6. > --prefix=/usr/local/nginx \                //指定安装路径
  7. > --user=nginx \                            //指定用户
  8. > --group=nginx \                            //指定组
  9. > --with-http_ssl_module                        //开启SSL加密功能
  10. [root@svr5 nginx-1.8.0]# make && make install    //编译并安装

2)启用Nginx服务并查看监听端口状态


    
    
  1. [root@svr5 ~]# /usr/local/nginx/sbin/nginx
  2. [root@svr5 ~]# netstat -anptu | grep nginx
  3. tcp        0        0 0.0.0.0:80        0.0.0.0:*        LISTEN        10441/nginx

步骤二:优化前从客户机访问Nginx服务器测试

1)使用ab高并发测试


    
    
  1. [root@svr100 ~]# ab –n 2000 –c 2000 http://192.168.4.5/
  2. Benchmarking 192.168.4.5 (be patient)
  3. socket: Too many open files (24)                //提示打开文件数量过多

2)使用脚本测试长头部请求是否能获得响应


  
  
  1. [root@svr100 ~]# cat buffer.sh
  2. #!/bin/bash
  3. URL=http://192.168.4.5/index.html?
  4. for i in {1..5000}
  5. do
  6.     URL=${URL}v$i=$i
  7. done
  8. curl $URL
  9. [root@svr100 ~]# chmod +x buffer.sh
  10. [root@svr100 ~]# ./ buffer.sh
  11. .. ..
  12. <center><h1>414 Request-URI Too Large</h1></center>        //提示头部信息过大
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


步骤三:优化Nginx服务器

1)修改Nginx配置文件


    
    
  1. [root@svr5 ~]# vim /usr/local/nginx/conf/nginx.conf
  2. .. ..
  3. worker_processes 2;                    //与CPU核心数量一致
  4. events {
  5. worker_connections 65535;        //每个worker最大并发连接数
  6. use epoll;
  7. }
  8. http {
  9. server_tokens off;                    //不显示nginx版本号信息
  10. client_header_buffer_size 1k;        //默认请求包头信息的缓存    
  11. large_client_header_buffers 4 4k;        //大请求包头部信息的缓存个数与容量
  12. gzip on;
  13. gzip_min_length 1000;
  14. gzip_comp_level 4;
  15. gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
  16. server {
  17. listen 80;
  18. server_name www.tarena.com;
  19. location / {
  20. root html;
  21. index index.html index.htm;
  22. }
  23. location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
  24. expires        30d;            //定义客户端缓存时间为30天
  25. }
  26. error_page 404 /40x.html;    //自定义错误页面
  27. location = /40x.html {
  28. root html;
  29. }
  30. }
  31. }

2)修改Linux操作系统最大打开文件数

通过修改/etc/security/limits.conf文件修改打开文件最大数量:


    
    
  1. [root@svr5 ~]# vim /etc/security/limits.conf
  2. * soft nofile 100000
  3. * hard nofile 100000
  4. [root@svr5 ~]# ulimit –Hn 100000
  5. [root@svr5 ~]# ulimit –Sn 100000

3)提前生成404错误页面,供测试使用:


    
    
  1. [root@svr5 ~]# vim /usr/local/nginx/html/40x.html
  2. <h1>~~~~^^^Error^^^~~~</h1>

步骤四:优化后从客户机访问Nginx服务器测试

对Nginx服务器进行各种参数优化后,在客户端访问服务器页面,对比优化前与优化后的区别,验证优化是否生效。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值