开发者社区> 余二五> 正文

企业级nginx服务优化(一)

简介:
+关注继续查看

配置文件总结

nginx.conf      httpd.conf    httpd-vhosts.conf  httpd-mpm.conf

my.cnf          php.ini        php-fpm.conf


更改版本信息

curl -I 192.168.10.11

Server: nginx/1.6.3


第一种   修改版本及版本号

nginx编译前更改

src/core/nginx.h

#define nginx_version      1008001

#define NGINX_VERSION      "1.8.1"  #修改想要显示的版本如:2.2.23

#define NGINX_VER          "nginx/" NGINX_VERSION        #将nginx修改成想要显示的软件名称

#define NGINX_VAR          "NGINX" #将nginx修改成想要显示的软件名称(Evan Web Server)

#define NGX_OLDPID_EXT     ".oldbin"

src/http/ngx_http_header_filter_module.c

static char ngx_http_server_string[] = "Server: nginx" CRLF;  #将nginx修改为想要的版本

src/http/ngx_http_special_response.c

"<hr><center>nginx</center>" CRLF  #将nginx修改为想要的版本信息


第二种   隐藏版本号

nginx配置文件里增加 server_tokens off;

server_tokens作用域是http server location语句块

server_tokens默认值是on,表示显示版本信息,设置server_tokens值是off,就可以在所有地方隐藏nginx的版本信息。

http{

      server_tokens off;

}

/application/nginx/sbin/nginx -s reload

nginx/1.6.3-----------------------变成了nginx   //404 Not Found


更改掉nginx的用户

# grep "#user"    nginx.conf.default           //默认文件

#user  nobody;

1    vim   nginx.conf   //修改配置文件               

user  nginx  nginx;

2   ./configure  --user=nginx   --group=nginx 

ps -ef | grep nginx

root      56512      1  0 02:35 ?        00:00:00 nginx: master process      //主进程用root运行,可以更为nginx,端口必须大于1024

nginx     57470  56512  0 04:04 ?        00:00:00 nginx: worker process 


配置nginx worker进程个数

worker_processes  1;          //等于CPU的核心数   cat /proc/cpuinfo |grep -c processor 查CPU

更改为worker_processes  2;    查看

nginx      1822   1784  0 04:14 ?        00:00:00 nginx: worker process       

nginx      1823   1784  0 04:14 ?        00:00:00 nginx: worker process


配置worker_cpu-affinity 

worker_processes  2;

worker_cpu_affinity    0101  1010;              //把每个work进程分配到单独的CPU核数上

worker_processes  4;

worker_cpu_affinity    0001  0010 0100 1000 

worker_processes  8;

worker_cpu_affinity    0001  0010 0100 1000  0001 0010 0100 1000


安装压力测试软件  webbench

wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz  

tar zxf webbench-1.5.tar.gz

cd webbench-1.5

make && make install

webbench -c 20000  -t 180  http://192.168.10.11/     // -c 表示客户端数,-t 表示时间


taskset - retrieve or set a process’s CPU affinity

taskset  -c  1,2,3   /etc/init.d/mysql  start  //某个进程跑在某个CPU上


事件处理模型优化  在linux下epoll模型

events {  //设定nginx工作模式及连接数上限

        use    epoll;

        worker_connections  20480;    //每个进程的最大连接数,默认1024

}

Max_client=worker_processes*worker_connections;   最大数

进程的最大连接数受系统进程最大打开文件数限制,执行ulimit -HSn 65535,或者配置相应文件的   worker_connections的设置后生效。

worker_rlimit_nofile    65535;      //每个进程最大文件打开数


优化服务器名字hash表大小

http://hequan.blog.51cto.com/              //泛解析

http{

server_names_hash_bucket_size   64;

server_names_hash_max_size  512;              //默认为512,一般为CPU L1的4-5倍

}


开启高效的文件传输模式

sendfile  on;

tcp_nopush   on;


连接超时时间      // php服务建议 短连接


keepalive_timeout     60;               //客户端连接保持会话的超时时间

tcp_nodelay    on;

client_header_timeout  15;    //客户端请求头读取超时时间,超过不发送数据,返回408错误

client_body_timeout  15;      //主体

send_timeout    15;    // 响应客户端的超时时间


上传文件大小限制    (动态应用)

client_max_body_size   10m;    //客户端最大上传               超过了报413错误    0是不检查  php默认2m


fastcgi 调优  


location ~ .*\.(php|php5)?$ {

    fastcgi_pass   127.0.0.1:9000;

    fastcgi_index  index.php;

    include        fastcgi.conf;

}


fastcgi_connect_timeout   300;   //连接

fastcgi_send_timeout   300;    //传送请求

fastcgi_read_timeout   300;  //应答

fastcgi_buffer_size   64k;   //缓冲区

fastcgi_buffer     4      64k;            //       多少个 多大的缓冲区

fastcgi_busy_buffer_size   128k;

fastcgi_temp_buffer_size   128k;

fastcgi_cache   hequan_nginx

fastcgi_cache_valid   200 302  h;

fastcgi_cache_valid 301 1d;

fastcgi_cache_valid any  1m;

fastcgi_cache_min_uses  1;


drwx------ 12 nginx root 4096 4月   5 04:32 fastcgi_temp   // 临时文件










本文转自 295631788 51CTO博客,原文链接:http://blog.51cto.com/hequan/1770441,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《高性能Linux服务器构建实战》——1.6节Nginx性能优化技巧
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第1章,第1.6节Nginx性能优化技巧,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1036 0
架构师细说 NGINX 的配置及优化
最近感觉很多东西在运用到一定的程度之后,会发现原来是自己了解到的不够。一方面限于实际运用到的不多,一方面可能是因为一开始没有进行全面认识。遂这里搜集整理了一番NGINX。
872 0
传统IT企业转型之路
本文整理自2017云栖大会-成都峰会上管家婆云科技有限公司CEO宁洪的分享讲义。讲义主要分享了传统IT软件厂商的服务方式,并分享了这些方式的缺憾,向云转型的必要性以及同阿里合作的缘由。
1445 0
Nginx配置性能优化
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的Nginx对你的网站来说已经能很好地工作了。
1337 0
+关注
20380
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载