nginx服务优化,Nginx配置文件详解

安插ngxin expires,,,,这一个要求放在server标签下

open_file_cache max=65535 inactive=60s;

方法1:提示下载不解析
<Directory ~ "/application/www/etiantian/bbs/attachments"> 
    Options FollowSymLinks 
    AllowOverride None
    Order allow,deny 
    Allow from all 
    php_flag engine off #注意这行
</Directory>


方法2:这个会包含403
<Directory /var/html/blog>
    <Files ~ ".php"> 
        Order allow,deny 
        Deny from all
    </Files> 
</Directory>

#长连接超时时间,单位是秒

[root@server conf]# egrep 'User|Group' httpd.conf
# User/Group: The name (or #number) of the user/group to run httpd as.
User www
Group www

#    hash_method crc32;

在server标签下
error_page 403 /403.html   此路径相对于root    html/www的

error_page 500 502 503 504 /50x.html;
location = /50x.html{
    root html;
}
位于html目录下

#    server server1;

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

#}

防止客户端是火狐或许IE的拜访,,,,,,区别的爬虫所对应的agent也是不相同等的

#分页大小能够用命令getconf PAGESIZE 获得。

 

#4096

参考:http://blog.csdn.net/xifeijian/article/details/38615695

#client_body_temp_path设置记录文件的目录 能够安装最多3层目录

 

#2、weight

php  希望短连接  java长连接

#}

apache压缩模块

expires 15d;

apache呢

#一般说来web服务器放在反向代理的末尾,那样就不能够获得到客户的IP地址了,通过$remote_add得到的IP地址是反向代理服务器的iP地址。反向代理服务器在中间转播呼吁的http头消息中,能够扩充x_forwarded_for消息,用以记录原有客户端的IP地址和原先客户端的呼吁的服务器地址。

20.1)nginx站点目录及文件U景逸SUVL访谈调整

#客户端恳求尾部的缓冲区大小。这一个能够依靠你的种类分页大小来设置,一般三个伸手的头顶大小不会超过1k,但是鉴于一般系统一分配页都要大于1k,所以这里安装为分页大小。分页大小能够用命令getconf
PAGESIZE获得。

内需收缩的享有程序(js,css,html,文本),不要压缩的原委(图片,录制,flash)

#地面情状分离反向代理配置

mkdir /server/scripts/ -p
cd /server/scripts/
vim cut_nginx_log.sh
cd /application/nginx/logs && \
/bin/mv www_access.log www_access_$(date +%F -d -1day).log
/application/nginx/sbin/nginx -s reload

#暗许编码

以DSO动态模块加载mod_deflate配置的全部命令为: cd /home/oldboy/tools/httpd-2.2.27/modules/filters/ 
<==切到apache软件目录mod_deflate程序下。
/application/apache/bin/apxs -c -i -a mod_deflate.c 
<==以dso的方式编译入到apache中。
ll /application/apache/modules/mod_deflate.so 
<==检查mod_deflate

配置文件的修改
<ifmodule mod_deflate.c> 
    DeflateCompressionLevel 9 
    SetOutputFilter DEFLATE 
    AddOutputFilterByType DEFLATE text/html text/plain text/xml 
    AddOutputFilterByType DEFLATE application/javascript 
    AddOutputFilterByType DEFLATE text/css
 </ifmodule>

proxy_pass http://127.0.0.1:88;

9.1)开启高效文件传输形式

#$time_local: 用来记录拜谒时间与时区;

8.1)优化服务器名字的hash表大小

}

18.1)NGINX不记录无需的拜候日志,对于健检或少数图片无需记录,并且日志写入频繁会消耗磁盘IO,收缩服务脾气。

#Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS
X.使用双管理器的MacOS X系统选择kqueue恐怕会导致基本崩溃。

那些值根据服务器质量和顺序的内部存储器使用量来钦点(多少个进度运转使用的内存依照程序规定)

#}

1.1)隐蔽nginx header 内版本号消息

error_log /usr/local/nginx/logs/error.log info;

  

access_log on;

vim proxy.conf

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 50m;
client_body_buffer_size 256k;
proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 60;

proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m;
proxy_store on;
proxy_store_access   user:rw  group:rw  all:r;
#proxy_temp_path      /dev/shm/nginx_proxy;
#proxy_temp_path       /data2/nginx_cache;

然后再具体的站点的下面
例如
location ~.*\.(php|php5)?$ {
         root           html/bbs;
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
        # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
         include        fastcgi.conf;
         include        proxy.conf;
     }

配置文件在conf下,,,然后配置在extra下的虚拟主机里

#5.backup:
其余具备的非backup机器down或然忙的时候,乞请backup机器。所以那台机器压力会最轻。

location ~ ^/oldboy/ { 
    allow 202.111.12.211; 
    deny all; 
} 

location / { 
    deny 192.168.1.1; 
    allow 192.168.1.0/24; 
    allow 10.1.1.0/16; 
    deny all; 
}

#后端的Web服务器能够由此X-Forwarded-For获取用户实际IP

[root@server extra]# cat httpd-default.conf 
ServerTokens Prod
ServerSignature off

#负载均衡布局

http{
    server_names_hash_bucket_size 64;
}

proxy_pass http://127.0.0.1:8080;

明令禁止某目录让外部访谈,但允许某ip访问该目录,且协理PHP深入分析

}

tmpfs,临时文件系统,是一种基于内存的文件系统。

可以配置eaccelerator缓存目录
mkdir -p /tmp/eaccelerator
此目录可以用tmpfs内存文件系统来存储,ssd固态硬盘
chown -R nginx.nginx /tmp/eaccelerator

也可以重新搞一个目录
[root@aliyun ~]# mkdir -p /tmpfs
[root@aliyun ~]# mount -t tmpfs -o size=16m tmpfs /tmpfs
[root@aliyun ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  5.4G   32G  15% /
tmpfs           499M     0  499M   0% /dev/shm
tmpfs            16M     0   16M   0% /tmpfs

-t 类型      第二个tmpfs是设备名    正常情况下可以设置空间为2G到4G
然后可以放到/etc/fstab或者/etc/rc.loacl 

#}

ExpiresActive on 
ExpiresDefault "access plus 12 month"
ExpiresByType text/html "access plus 12 months" 
ExpiresByType text/css "access plus 12 months"
ExpiresByType image/gif "access plus 12 months" 
ExpiresByType image/jpeg "access plus 12 months"
ExpiresByType image/jpg "access plus 12 months" 
ExpiresByType image/png "access plus 12 months"
EXpiresByType application/x-shockwave-flash "access plus 12 months"
EXpiresByType application/x-javascript "access plus 12 months" 
ExpiresByType video/x-flv "access plus 12 months"

#A)规范事件模型

门户网站案例
error_page 400 http://err.tmall.com/error1.html; 
error_page 403 http://err.tmall.com/error1.html; 
error_page 404 http://err.tmall.com/error1.html; 
error_page 405 http://err.tmall.com/error1.html;
error_page 408 http://err.tmall.com/error1.html; 
error_page 410 http://err.tmall.com/error1.html; 
error_page 411 http://err.tmall.com/error1.html; 
error_page 412 http://err.tmall.com/error1.html; 
error_page 413 http://err.tmall.com/error1.html;
error_page 415 http://err.tmall.com/error1.html; 
error_page 500 http://err.tmall.com/error2.html; 
error_page 501 http://err.tmall.com/error2.html; 
error_page 502 http://err.tmall.com/error2.html; 
error_page 503 http://err.tmall.com/error2.html; 
error_page 506 http://err.tmall.com/error2.html;

淘宝的web服务器
http://tengine.taobao.org/

default_type application/octet-stream;

location ~* \.(txt|doc)$ { 
    if (-f $request_filename){ 
        root /data/www/www; 
        #rewrite …..可以重定向到某个URL 
        break;
    }
 } 

location ~* \.(txt|doc)${ 
root /data/www/www; 
deny all;
}

单目录: 
location ~ ^/(static)/ {
    deny all; 
} 
location ~ ^/static { 
    deny all;
} 
多目录: 
location ~ ^/(static|js) { 
    deny all; 
}
location /admin/ { 
    return 404;
} 
location /templates/ {
    return 403; 
}

listen 80;

提供了对文本内容减弱的功力,允许nginx服务器将出口内容在发送到客户端以前基于具体的安顿进行压缩,以节省网址带宽,同一时候进级用户访谈体验,此效率同apache的mod_deflate压缩作用,依赖ngx_http_gzip_module模块,默许已安装。

client_body_buffer_size 128k;

4.1)依照cpu核数进行nginx进度优化

auth_basic_user_file confpasswd;

配置方法:
<FilesMatch "\.(css|js|gif|jpg|ico|swf)"> 
SetEnv IMAG 1 
</FilesMatch> 
日志配置:
CustomLog "|/usr/local/sbin/cronolog /app/logs/%Y/%m/access_%Y%m%d.log" combined env=!IMAG 
CustomLog "|/usr/local/sbin/cronolog /app/logs/%Y/%m/%d/access_%Y%m%d%H.log" combined env=!IMAG

}

22.1)使用tmpfs文件系统替代频仍看望的目录

events

14.1)配置nginx gzip压缩模块

pdf|xls|mp3|wma)$

假诺还不可能化解难点,大概服务器运营非常缓慢,再尝试进步server_names_hash_bucket_size的值。如果server_name是一个分包捕获组的正则表明式,那是nginx就不得不实施那个表明式以获取捕获组。server_names_hash_max_size
512; #默许是512kb,一般要查看系统提交确切的值,这里一般cpu L1的4-5倍。

#安装在写入proxy_temp_path时数据的深浅,防止四个行事历程在传递文件时打断太长

16.10)nginx防爬虫案例

{

nginx的接连管理机制在于区别的操作系统采取差别的io模型,在linxu使用epoll的io多路复用模型,在freebsd使用kqueue的io多路复用模型,在solaris使用/dev/poll形式的io多路复用模型,在windows使用的是icop等等。
events{
use epoll;
}
use是个事件模块指令,用来钦赐nginx的工作形式。nginx协理的做事情势有select、poll、kqueue、epoll、rtsig和/dev/poll.当中select和poll都以行业内部的行事形式,kqueue和epoll是最便捷的办事格局,不一致的是epoll用在linux平台上,而kqueue用在bsd系统中。对于Linux系统linux2.6+的基础,推荐采取epoll职业格局,这是高质量高产出的装置。

client_max_body_size 10m;

25.1)

expires 10d;

2.2)apache一般都是在布置文件之中钦命

auth_basic “NginxStatus”;

1)nginx下取缔访谈财富目录下的PHP程序被深入分析,禁止images目录下的php文件被访谈

#日志格式设定

13.1)更换源码掩饰软件名称及版本号

proxy_busy_buffers_size 64k;

7.1)配置每一种进程最大文件打开数
worker_rlimit_nofile 65535;
种种进度展开的最大文件数,可安装为系统优化后的ulimit
-HSn的结果,这么些能够小一些不必如此大32768就能够。

#    server 127.0.0.1:6060;

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

fastcgi_busy_buffers_size 128k;

在高并发场景,需求事先运行更加多的nginx进度以担保高速响应并拍卖用户的诉求
worker_processes 8;
建议钦定和cpu的数目相等或乘2的长河数。
[root@aliyun ~]# grep ‘physical id’ /proc/cpuinfo

open_file_cache_errors on;

6.1)调度单个进度允许的客户端最明斯克接数

#upstream backend {

21.1)优雅的错误页面

#各个央浼按期间顺序依次分配到不一致的后端服务器,若是后端服务器down掉,能半自动删除。

状态码:http://oldboy.blog.51cto.com/2561410/716294
消息(1字头)
成功(2字头)
重定向(3字头)
伸手错误(4字头)
服务器错误(5字头)

#3、fair(第三方)

[root@aliyun ~]# vi /application/nginx/conf/nginx.conf
http{

……
server_tokens off;
……

}

[root@aliyun ~]# curl -I 172.19.125.*
HTTP/1.1 200 OK
Server: nginx               没有版本号了
Date: Mon, 11 Sep 2017 07:07:05 GMT
Content-Type: text/html;charset=utf-8
Connection: keep-alive
X-Powered-By: PHP/5.3.27
Set-Cookie: pcok=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; httponly

#假诺把它设置为异常的大的数值,举个例子256k,那么,无论使用firefox如故IE浏览器,来交给跋扈小于256k的图形,都很不荒谬。固然注释该指令,使用私下认可的client_body_buffer_size设置,也正是操作系统页面大小的两倍,8k要么16k,难点就出现了。

15.1)nginx expires缓存功效

#全局错误日志定义类型,[ debug | info | notice | warn | error | crit
]

主配置文件里参预如下参数
client_max_body_size 10m;
官方文档:
set the maximum allowed size of the client request body

proxy_set_header X-Real-IP $remote_addr;

为了消除网址访谈的拜候压力,大家相应尽大概将客户拜望内容往前推,可以放到客户端的就不用放到CDN,能够放到CDN的就无须放到本地服务器,充足的行使每一层的缓存,直到不得不尔才让客户拜访到我们的数据存上去。

proxy_connect_timeout 90;

location ~ ^.*\.(php|php5)$ {
    deny all;
}

location ~ ^/static/.*\.(php|php5)$ {
    deny all; 
} 

location ~* ^/data/(attachment|avatar)/.*\.(php|php5)$ { 
    deny all; 
}

但是上面这些需要放在下面的前面
location ~.*\.(php|php5)?$ {
         root           html/bbs;
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         include        fastcgi.conf;
     }

server_name www.jd.com jd.com;

1.2)Apache去版本号的参数

proxy_send_timeout 90;

~ 区分轻重缓急写(大小写敏感)相称成功
~* 不区分轻重缓急写相配成功
!~ 区分轻重缓急写相配退步
!~* 不区分轻重缓急写相称战败

{

19.1)最小化目录及文件权限设置

#后端服务器数据回传时间_固然在规定时期之内后端服务器必须传完全体的多少

if ($http_user_agent ~* "Firefox|MSIE") 
{ 
    return 403;
}


下面是在真个篇幅下,这个的所处位置环境
server {
            listen       80;
            server_name  bbs.etiantian.org;
                root   html/bbs;
                index  index.php  index.html index.htm;
            if ($http_user_agent ~* "Firefox|MSIE") 
            { 
                return 403; 
            }
            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 
            { 
                    expires 3650d;
                root    html/bbs; 
            }
            location ~ .*\.(js|css)?$ 
            { 
                    expires 30d;
                root    html/bbs;
            }
             location ~.*\.(php|php5)?$ {
             root           html/bbs;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;
            # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
             include        fastcgi.conf;
            }
        }

#是Linux
2.6以上版本内核中的高质量互连网I/O模型,linux提出epoll,假诺跑在FreeBSD上边,就用kqueue模型。

#修改/home/tools/nginx-1.6.2/src/core

隐藏软件名称等操作
/home/tools/nginx-1.6.2/src/http
[root@aliyun http]# vim ngx_http_header_filter_module.c 

48行
static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
改为
static char ngx_http_server_string[] = "Server: nidaye" CRLF;
static char ngx_http_server_full_string[] = "Server: nidaye " CRLF;

此时就需要重新编译,需要备份的东西要备份,,,这面这个操作只改变了header,对于页面错误的信息要该下面与上相同目录,,,,这个最好跟上面的一起做了,不要重复编译
[root@aliyun http]# vim ngx_http_special_response.c 

static u_char ngx_http_error_tail[] =
"<hr><center>nidaye</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;

#敞开限制IP连接数的时候须求采用

2)Nginx下安顿禁止访谈*.txt文件

#其一是指多久检查三次缓存的卓有成效消息。

2.1)更动nginx的暗许用户及用户组nobody

client_header_buffer_size 32k;

消除坏处:
  1、过期的岁月短一些。
  2、财富文件更新时,改名。

server 192.168.80.123:80 weight=3;

expires
好处:
  1、第三次之后,访问网址快
  2、节省服务带宽,,,成本
  3、服务器压力缩短。费用
坏处:
  1、网址改版,对应的用户看到的依然旧的(js,css,图片)

location / {

gzip on;
开启gzip压缩功能
gzip_min_length 1k;
允许压缩的页面最小字节数,页面字节数从header头的content-length中获取,默认值是0,不管哪个页面多大都进行压缩,建议设置成大于1k,如果小于1k可能会越压越大。
gzip_buffers   4 32k;
申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。
gzip_http_version 1.1;
压缩版本(默认1.1,前端为squid2.5时使用1.0)用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持gzip解压,使用默认即可。
gzip_comp_level 9;
压缩比率。用来指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理最慢,比较消耗cpu资源
gzip_types text/plain application/javascript text/css application/xml;          可以在nginx下的[root@aliyun conf]# cat mime.types查看类型,不同的版本可能不同,火狐有个插件yslow可以查看压缩情况,可能需要FQ下载用来指定压缩的类型,“text/html”类型总是会被压缩。。
gzip_vary on;
可以让前端的缓存服务器缓存经过gzip压缩的页面,缓存服务器里保存压缩过的缓存。

#语法:open_file_cache_min_uses number
默认值:open_file_cache_min_uses 1 使用字段:http, server, location 
那个命令钦命了在open_file_cache指令无效的参数中必定的年月限定内得以行使的比十分的小文件数,假如利用更加大的值,文件陈诉符在cache中三番五次展开状态.

下一场将这段脚本参加crontab

#在供给选取负载均衡的server中扩充 proxy_pass http://bakend/;

有惊无险的权杖:
富有站点目录的用户和组都应为root
具备目录权限是暗中认可的755
有着文件权限是暗中同意的644
注意,网址服务的用户无法用root。
上述的权力的安装能够实现防止红客上传木马,以及修改站点文件,可是合理的用户上传的开始和结果也被拒绝在门外了。====
要解决地点的难点,,,将在对专业举办分离,在可比好的网址架构中,应把能源文件,包罗用户上传的图片,附属类小部件等的劳务和顺序服务分离,最佳把上传程序服务也分别,那样就能够从容依照前面安全的正规授权了。

#此选项允许或禁用socke的TCP_CO中华VK的选项,此选项仅在接纳sendfile的时候使用

3.1)配置nginx worker进程个数 

#proxy_buffers缓冲区,网页平均在32k以下的安装

四核cpu服务器:
worker_cpu_affinity 0001 0010 0100 1000;
nginx进程cpu亲和力,即把不同的进程分给不同的cpu处理。这里0001 0010 0100 1000是掩码,分别代表1、2、3、4颗cpu核心

八核cpu服务器:
worker_cpu_affinity 0001 0010 0100 1000 0001 0010 0100 1000

#设定缓存文件夹大小,大于那么些值,将从upstream服务器传

25.1)Nginx多实例,,,,,钦定不相同的布局文件,不一致的端口即可完成多实例

}

 

‘”$http_user_agent” $http_x_forwarded_for’;

5.1)事件管理模型优化

#表示使nginx阻止HTTP应答代码为400仍旧越来越高的答疑。

17.1)nginx日志轮询

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

server{
    listen 80;
    server_name nginx.org www.nginx.org *.nginx.org;
}

#进程pid文件

sendfile on;
同时将tcp_nopush和tcp_nodelay多少个指令设置为on用于幸免网络阻塞。

gzip_http_version 1.0;   
#调整和收缩版本(暗许1.1,前端假使是squid2.5请使用1.0)

24.1)Tcmalloc优化Nginx品质(本人剖断要不要使用)
TCMalloc的全称为Thread-Caching
Malloc,是谷歌(Google)费用的开源工具“google-perftools”中的一个成员。与标准的glibc库的malloc相比较,TCMalloc库在内部存储器分配功能和速度上要高很多,那在一点都不小程度上提升了服务器在高并发境况下的质量,进而降低系统负荷。上面简要介绍怎么样为Nginx增添TCMalloc库补助。

#按访问url的hash结果来分配诉求,使各样url定向到同贰个后端服务器,后端服务器为缓存时相比较灵通。

依照扩充名限制造进度序和文件访谈

#概念本设想主机的拜候日志

设若定义了大气名字,只怕定义了那多少个长的名字,那就供给在http配置块中调治server_names_hash_max_size和server_names_hash_bucket_size的值。
server_names_hash_bucket_size的暗中同意值或然是32,大概是64,或许是别的值,取决于cpu的缓存行的长度。假如那个值是32,那么定义“too.long.server.name.nginx.org”作为虚构主机名就能够停业,呈现上面错误音信:could
not build the server_names_hash,you should increase
server_names_hash_bucket_size:32油然则生了这种情形,那就要求将设置值增加学一年级倍:

fastcgi_pass 127.0.0.1:9000;

适中名字和通配符名字存款和储蓄在哈希表中。
例子:

location /NginxStatus {

 

#文件增加名与文件类型映射表

fastcgi_connect_timeout 300;
连接到后端fastcgi的超时时间
fastcgi_send_timeout 300;
向fastcgi传送请求的超时时间,这个值是指已经完成两次握手后向fastcgi传送请求的超时时间。
fastcgi_read_timeout 300;
接收fastcgi应答的超时时间,这个值是指已经完成两次握手后接收fastcgi应答的超时时间。
fastcgi_buffer_size 64k;
读取fastcgi应答第一部分需要用多大的缓冲区,这个值表示将使用1个64KB的缓冲区读取应答的第一部分(应答头),
可以设置为fastcgi_buffers选项指定的缓冲区大小。
fastcgi_buffers 4 64k;
本地需要用多少盒多大的缓冲区来缓冲fastcgi的应答请求。如果一个php脚本所产生的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓冲;如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快鱼硬盘,一般这个值应该为站点中Php脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“16” 、“4 64k”等。
fastcgi_busy_buffers_size 128k;
建议为fastcgi_buffers的两倍
fastcgi_temp_file_write_size 128k;
在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍,设置上述数值设置太小时若负载上来时可能报502BAD GATEWAY
fastcgi_cache oldboy_nginx;
开启fastcgi缓存并为其指定一个名称。开启缓存非常有用,可以有效降低cpu的负载,并且防止502错误的发生,但是开启缓存也可能会引起其他问题。
fastcgi_cache_valid 200 302 1h;
用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一个小时
fastcgi_cache_valid 301 1d;
将301应答缓存1天
fastcgi_cache_valid any 1m;
将其他应答缓存为1分钟
fastcgi_cache_min_uses 1;
缓存在fastcgi_cache_path指令inactive参数值时间内的最少使用次数

#$request: 用来记录央浼的url与http协议;

默许处境下nginx的三个进程只怕越来越多的跑在一颗cpu上,本节是分配不一致的经过给不相同的cpu管理,达到丰裕利用硬件多核多cpu的指标。

server 192.168.80.122:80 weight=2;

apache的这么些过期光阴跟上边的削减源码加多差不离,但是为了节约麻烦依然在编写翻译的时候就安装好

tcp_nodelay on;

10.1)设置连接超时时间

server 192.168.80.121:80 weight=3;

keepalive_timeout 60;
客户端连接保持会话的超时时间,超过这个时间,服务器会关闭该连接。
tcp_nodelay on;
包含了keepalive参数才有效
client_header_timeout 15;
设置客户端请求头读取超时时间,如超过这个时间,客户端还没有发送任何数据,nginx将返回“Request time out(408)”错误。
client_body_timeout 15;
设置客户端请求主体读取超时时间,如超过这个时间,客户端还没有发送任何数据,nginx将返回“request time out(408)”错误,默认值是60.
send_timeout 15;
响应客户端的超时时间。这个超时仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,nginx将会关闭连接

fastcgi_buffers 4 64k;

23.1)apache不解析php

log_format access ‘$remote_addr – $remote_user [$time_local]
“$request” ‘

压力测量检验软件    ab ,webbench,,loadruner

#法斯特CGI相关参数是为着精耕细作网址的个性:裁减财富占用,进步访谈速度。下边参数看字面意思都能明了。

location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)$ 
{ 
    access_log off; 
} 

#htpasswd文件的开始和结果能够用apache提供的htpasswd工具来产生。

12.1)fastcgi调优(同盟php引擎动态服务)

#[root@web001 ~]# getconf PAGESIZE

1、根据文件扩展名进行判断
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 
{ 
      expires 3650d; 
      root    html/bbs;
}
location ~ .*\.(js|css)?$ 
{ 
      expires 30d;
      root    html/bbs;
}


2、根据目录进行判断
## Add expires header according to dir. 
location ~ ^/(images|javascript|js|css|flash|media|static)/ { 
    expires 360d; 
}

3、单个文件判断
给robots.txt设置过期时间,这里为robots为7天并不记录404错误日志
location ~(robots.txt){
    log_not_found off;
    expires 7d;
    break;

}

#    fair;

[root@aliyun conf]# grep 'user' nginx.conf.default 
#user  nobody;

nginx一般都是在编译的时候指定的   --user=nginx  --group=nginx

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

pid /usr/local/nginx/logs/nginx.pid;

#概念Nginx运维的用户和用户组

}

#安装从被代理服务器读取的第一有个别应答的缓冲区大小,常常状态下这有的回应中满含叁个小的应答头,暗中同意情状下那一个值的大大小小为命令proxy_buffers中钦点的二个缓冲区的轻重,不过能够将其安装为更加小

#例:在upstream中投入hash语句,server语句中不可能写入weight等其他的参数,hash_method是选取的hash算法

#upstream bakend{#概念负载均衡设备的Ip及器材状态}{

#监听端口

#伊芙ntport:使用于Solaris 10。 为了防止出现内核崩溃的主题材料,
有要求安装安全补丁。

#nginx进程数,提出设置为等于CPU总大旨数。

#高负荷下缓冲大小(proxy_buffers*2)

proxy_buffers 4 32k;

server

#4、url_hash(第三方)

#$http_referer:用来记录从那么些页面链接待上访谈过来的;

#tips:

#$http_user_agent:记录客户浏览器的连带音讯;

#对******实行负荷均衡

keepalive_timeout 120;

proxy_temp_file_write_size 64k;

#Epoll:使用于Linux内核2.6版本及现在的系统。

#    hash $request_uri;

#语法:open_file_cache_valid time 默认值:open_file_cache_valid 60
使用字段:http, server, location
那几个命令钦命了何时需求检讨open_file_cache中缓存项指标实用新闻.

expires 1h;

#后端服务器数据回传时间(代理发送逾期)

#内定轮询可能率,weight和拜望比率成正比,用于后端服务器质量不均的景况。

location ~
.*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|

#upstream bakend {

http

#全部静态文件由nginx直接读取不通过tomcat或resin

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

######Nginx配置文件nginx.conf汉语详解#####

client_max_body_size 8m;

#种种设备的情景设置为:

#客户端央浼尾部的缓冲区大小。那个可以依赖你的系统一分配页大小来安装,一般多少个央求头的大小不会超越1k,可是鉴于一般系统一分配页都要超过1k,所以这里设置为分页大小。

#nginx的upstream这几天扶助4种方式的分配

worker_connections 65535;

stub_status on;

fastcgi_send_timeout 300;

fastcgi_index index.php;

#对 “/” 启用反向代理

#B)高效事件模型

#后端服务器连接的逾期时间_发起握手等候响应超时时间

#以下是一些反向代理的布署,可选。

#设置用于读取应答(来自被代理服务器)的缓冲区数目和尺寸,暗中认可意况也为分页大小,依照操作系统的不如也许是4k要么8k

index index.html index.htm index.php;

#保留服务器名字的hash表是由指令server_names_hash_max_size
和server_names_hash_bucket_size所决定的。参数hash bucket
size总是等于hash表的大小,况兼是联合签名计算机缓存大小的倍数。在裁减了在内部存款和储蓄器中的存取次数后,使在Computer中加速查找hash表键值成为或许。假设hash
bucket
size等于一路计算机缓存的尺寸,那么在查找键的时候,最坏的动静下在内部存储器中找寻的次数为2。第三次是显明期存款款和储蓄单元的地方,第二回是在存款和储蓄单元中查找键
值。由此,假诺Nginx给出供给增大hash max size 或 hash bucket
size的唤醒,那么重大的是外加前四个参数的大小.

upstream piao.jd.com {

keepalive_timeout 60;

#例如:

#每一个央求按访谈ip的hash结果分配,那样各类访客固定访谈叁个后端服务器,能够化解session的标题。

#    server squid2:3128;

#Select、poll属于标准事件模型,假使当前系统不设有更实惠的办法,nginx会选用select或poll

#本条命令是指当几个nginx进度展开的最多文件呈报符数目,理论值应该是最多张开文件数(ulimit
-n)与nginx进度数相除,然则nginx分配央浼并非那么均匀,所以最棒与ulimit
-n 的值保持一致。

#gzip模块设置

#与apache相类,nginx针对分裂的操作系统,有例外的平地风波模型

server_names_hash_bucket_size 128;

#但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为“系统一分配页大小”的整倍数。

#JS和CSS缓存时间设置

{

{

#client_body_in_file_only设置为On 能够讲client
post过来的数据记录到文件中用来做debug

#3.max_fails:允许央求战败的次数默感觉1.当越过最大次数时,重回proxy_next_upstream模块定义的一无所能

#设定通过nginx上传文件的尺寸

#做事形式与连接数上限

location ~ .*.(js|css)?$

#缓冲区代理缓冲用户端乞请的最大字节数,

#limit_zone crawler $binary_remote_addr 10m;

#今昔在linux
2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。

#设定查看Nginx状态的地址

#    server 127.0.0.1:8080 weight=2;

#charset utf-8;

}

gzip_min_length 1k;    #小小的压缩文件大小

#连日成功后,后端服务器响应时间(代理接收超时)

proxy_buffer_size 4k;

user www www;

#    ip_hash;

#$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;

#2、ip_hash

#点名进度能够张开的最大描述符:数目

gzip_comp_level 2;    #削减等第

}

{

fastcgi_read_timeout 300;

#单个进程最洛桑接数(最亚松森接数=连接数*进程数)

tcp_nopush on;

#$body_bytes_sent :记录发送给客户端文件大旨内容大小;

#参照事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select |
poll ]; epoll模型

use epoll;

#图片缓存时间设置

#    server 192.168.0.14 weight=10;

client_header_buffer_size 4k;

#$status: 用来记录央浼状态;成功是200,

include fastcgi.conf;

gzip on; #拉开gzip压缩输出

‘$status $body_bytes_sent “$http_referer” ‘

#    server 192.168.0.15 weight=10;

#语法:open_file_cache_errors on | off
默认值:open_file_cache_errors off 使用字段:http, server, location
那么些命令钦点是或不是在搜索一个文件是记录cache错误.

gzip_types text/plain application/x-javascript text/css
application/xml;   
#削减类型,暗许就曾经包罗textml,所以上面就不用再写了,写上去也不会有标题,不过会有一个warn。

#客户央浼头缓冲大小。nginx私下认可会用client_header_buffer_size这几个buffer来读取header值,倘使header过大,它会选拔large_client_header_buffers来读取。

#keepalive超时时间。

gzip_vary on;

#    server 127.0.0.1:9090 down;

}

}

#域名能够有三个,用空格隔绝

location ~ .(jsp|jspx|do)?$ {

#设置代理服务器(nginx)保存用户头音讯的缓冲区大小

#upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的概率越大。

gzip_buffers 4 16k;    #调整和减弱缓冲区

#虚构主机的布署

large_client_header_buffers 4 64k;

#open_file_cache指令中的inactive参数时间内文件的至少使用次数,如若超越这么些数字,文件陈述符一向是在缓存中展开的,如上例,假设有叁个文本在inactive时间内一回没被使用,它将被移除。

#老是成功后_等待后端服务器响应时间_实质上早已进去后端的排队之中等待管理(也能够说是后端服务器管理央求的岁月)

fastcgi_buffer_size 64k;

sendfile on;

access_log  /usr/local/nginx/logs/host.access.log  main;

{

#补充表明:

location ~ .*.(js|css)?$

#    server server2;

#拉开高效文件传输格局,sendfile指令钦命nginx是不是调用sendfile函数来输出文件,对于常见应用设为
on,固然用来拓展下载等采纳磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O管理速度,裁减系统的载荷。注意:要是图片呈现不符合规律把那些改成off。

#    server squid1:3128;

#依照硬件调节,和眼下专门的学业进度合作起来用,尽量大,可是别把cpu跑到百分之百就行。每一种进程允许的最多连接数,理论上每台nginx服务器的最浦那接数为。

proxy_set_header Host $host;

#location对USportageL举办相配.能够拓展重定向或然拓展新的代理 负载均衡

#同意客户端需要的最大单文件字节数

#服务器名字的hash表大小

proxy_redirect off;

proxy_read_timeout 90;

#2.weight为weight越大,负载的权重就越大。

#    server 192.168.0.15:80;

#1、轮询(默认)

#默许文件类型

#设定http服务器,利用它的反向代理成效提供负载均衡支持

#    ip_hash;

#那是因为nginx调整时分配乞求到进程实际不是那么的均匀,所以如若填写10240,总并发量达到3-4万时就有经过只怕超过10240了,那时会回去502荒谬。

include mime.types;

worker_rlimit_nofile 65535;

proxy_set_header Host $host;

#不论是采纳firefox4.0依然IE8.0,提交几个比极大,200k左右的图纸,都回来500
Internal Server Error错误

#/dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX
6.5.15+ 和 Tru64 UNIX 5.1A+。

#    server 192.168.0.14:88;

fastcgi_connect_timeout 300;

#本条将为开采文件钦点缓存,暗中同意是从未有过启用的,max钦定缓存数量,提出和开辟文件数一样,inactive是指通过多久文件没被呼吁后删除缓存。

root /data/www/jd;

#nginx援助同有的时候候设置多组的载荷均衡,用来给不用的server来使用。

#例如:

fastcgi_temp_file_write_size 128k;

proxy_intercept_errors on;

proxy_set_header X-Real-IP $remote_addr;

#$remote_user:用来记录客户端用户名称;

}

{

#具有jsp的页面均交由tomcat或resin管理

{

#按后端服务器的响应时间来分配乞请,响应时间短的事先分配。

#打开目录列表访谈,合适下载服务器,暗中认可关闭。

expires 1h;

}

#4.fail_timeout:max_fails次失利后,暂停的年华。

#sendfile指令钦赐 nginx 是不是调用sendfile 函数(zero copy
方式)来输出文件,对于一般应用,必须设为on。即使用来举行下载等使用磁盘IO重负载应用,可设置为off,以抵消磁盘与互连网IO管理速度,减少系统uptime。

#nginx跟后端服务器连接超时时间(代理连接超时)

#1.down象征单前的server权且不参与负载

worker_processes 8;

}

#upstream backend {

######Nginx配置文件nginx.conf普通话详解#####

#    server 127.0.0.1:7070 backup;

open_file_cache_valid 80s;

#}

access_log  /usr/local/nginx/logs/host.access.404.log  log404;

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$

#upstream bakend {

open_file_cache_min_uses 1;

autoindex on;