企业级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   // 临时文件










时间: 2024-10-15 00:14:21

企业级nginx服务优化(一)的相关文章

企业级nginx服务优化(二 )

配置nginx  gzip压缩功能 gzip  on; gzip_min_length   1k;     // 大于1K才压缩 gzip_buffers    4  32k;   // 压缩缓存区大小 gzip_http_version  1.1; gzip_comp_level  9;   //压缩比率  1-9 gzip_types     text/css  text/xml  application/javascript ;       // 压缩类型,不同版本,类型不一样, gzip

企业级nginx服务优化(三 )Apache+防盗链

apache   worker/prefork  /application/apache/bin/apachectl -l | sed -n '/worker\|prefork/p'   worker.c Server MPM:     Worker ./configure    --with-mpm=worke  //编译时指定,,默认是prefork prefork  默认 使用多个子进程,每个子进程只有一个线程 效率高,稳定,安全,比worker消耗资源多 vim  /applicatio

企业级nginx服务优化(四 )伪静态+php.ini

apache伪静态 打开apache的配置文件httpd.conf 1.把#LoadModule rewrite_module modules/mod_rewrite.so前面的#去掉. 2.找到 # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywor

企业级Web Nginx 服务优化

企业级Web Nginx 服务优化 http://blog.51cto.com/search/result?q=%E4%BC%81%E4%B8%9A%E7%BA%A7Web+Nginx+%E6%9C%8D%E5%8A%A1%E4%BC%98%E5%8C%96%285%29 企业级nginx服务优化合集 企业级nginx服务优化(一) 企业级nginx服务优化(二 ) 企业级Web Nginx 服务优化(1) 企业级Web Nginx 服务优化(2) 企业级Web Nginx 服务优化(3) 企业

企业级nginx服务优化合集

企业级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      

企业级Web Nginx 服务优化(1)

企业级Web Nginx 服务优化 总结配置文件: nginx.conf httpd.conf httpd-vhosts httpd-mpm.conf my.cnf php.ini php-fpm.conf 1.1nginx.conf 配置文件基本参数优化 1.1.1 隐藏nginx header 内版本号信息 一些特定的系统及服务漏洞一般都和热定的软件及版本号有关,我们应尽量隐藏服务器的敏感信息(软件名称及版本等信息),这样黑客无法猜到有漏洞的服务是否是对应服务的版本,从而确保web服务器最大

企业级nginx.conf优化参考模板

以下是我整理的非常实用的企业级nginx.conf优化参考模板,整个配置并不一定适合各种环境,所以需要大家按各自需求选取部分功能配置到自己的nginx配置文件中. user nginx;     #Nginx服务的默认用户 worker_processes 4;     #一般为CPU核个数 worker_cpu_affinity 001 0010 0100 1000;  #绑定不同Nginx进程到不同CPU上 worker_rlimit_nofile 6535;     #worker进程最大

Nginx服务优化及优化深入

在企业信息化应用环境中,服务器的安全性和响应速度需要根据实际情况进行参数配置,以达到最优的用户体验.默认的Nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服务器的最大作用. Ngnix服务的安装详细介绍请参考 部署Nginx网站服务实现访问状态统计以及访问控制功能 Nginx服务优化 可以从隐藏版本号.更改用户与组.配置网页缓存时间.日志切割.设置连接超时这几个方面进行优化. 1.隐藏版本号 在生产环境中需要隐藏Nginx的版本号,以避免

nginx服务优化大全

第18章 nginx服务优化 18.1 复习以前的nginx知识 18.1.1 复习nginx编译安装的3部曲 ./configure????????配置(开启/关闭功能),指定安装目录 make????????????软件编译,将源代码编译成二进制文件 make install????????将一些目录进行复制,修改,文件进行修改,查看的操作 18.1.2 编译安装常用的nginx命令 nginx -t????????????????????????????语法检查 nginx -s relo