Nginx 的设置文件主要分为4部门:main (全局配置) -> 此部门配置的指令将影响其它所有配置server (主机配置) -> 主要用于指定 "主机" 和 "端口"upstream (负载平衡配置) -> 用于负载平衡location (URL 匹配特定位置的配置) location (URL 匹配特定位置的配置) -> 匹配网页文件的范例和位置
#界说Nginx运行的用户和用户组user www www;
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
#nginx历程数,发起配置为便是CPU总焦点数。
不必然需要全开,按照环境开,因为每个nginx历程耗损的内存10兆的阁下。
worker_processes 8;
# 仅合用于linux,利用该选项可以绑定worker历程和CPU(2.4内核的呆板用不了)
如果是8 cpu 分派如下: worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000
00100000 01000000 10000000
# worker_cpu_affinity
#全局错误日志界说范例,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log info;
#历程文件pid /var/run/nginx.pid;
#一个nginx历程打开的最多文件描写符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx历程数相除,可是nginx分派请求并不匀称,所以发起与ulimit -n的值保持一致。此刻在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。这是因为nginx调治时分派请求到历程并不是那么的平衡,所以如果填写10240,总并发量到达3-4万时就有历程大概高出10240了,这时会返回502错误。
查察linux系统文件描写符的要领:
[[email protected] ~]# sysctl -a | grep fs.filefs.file-max = 789972fs.file-nr = 510 0 789972
worker_rlimit_nofile 65535;
#事情模式与毗连数上限events{#参考事件模子,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模子是Linux2.6以上版本内核中的高机能网络I/O模子,假如跑在FreeBSD上面,就用kqueue模子。use epoll;
#单个历程最大毗连数(最大毗连数=毗连数*历程数)worker_connections 65535;
# 并发总数是 worker_processes 和 worker_connections 的乘积 # 即 max_clients = worker_processes * worker_connections # 在配置了反向署理的环境下,max_clients = worker_processes * worker_connections / 4 为什么 # 为什么上面反向署理要除以4,应该说是一个履历值 # 按照以上条件,正常环境下的Nginx Server可以应付的最大毗连数为:4 * 8000 = 32000 # worker_connections 值的配置跟物理内存巨细有关 # 因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数 # 而系统可以打开的最大文件数和内存巨细成正比,一般1GB内存的呆板上可以打开的文件数约莫是10万阁下 # 我们来看看360M内存的VPS可以打开的文件句柄数是几多: # $ cat /proc/sys/fs/file-max # 输出 34336 # 32000 < 34336,即并发毗连总数小于系统可以打开的文件句柄总数,这样就在操纵系统可以遭受的范畴之内 # 所以,worker_connections 的值需按照 worker_processes 历程数目和系统可以打开的最大文件总数举办适内地举办配置 # 使得并发总数小于操纵系统可以打开的最大文件数目 # 其实质也就是按照主机的物理CPU和内存举办设置 # 虽然,理论上的并发总数大概会和实际有所毛病,因为主机尚有其他的事情历程需要耗损系统资源。 # ulimit -SHn 65535
}
#设定http处事器http{include mime.types; #文件扩展名与文件范例映射表
#默认的数据范例,当范例未界说时利用二进制流的方法,好比未安装PHP时,是不予理会,用欣赏器会见则呈现下载窗口
default_type application/octet-stream;
#charset utf-8; #默认编码
server_names_hash_bucket_size 128; #处事器名字的hash表巨细
#客户请求头缓冲巨细nginx默认会用client_header_buffer_size这个buffer来读取header值,假如
header过大,它会利用large_client_header_buffers来读取假如配置过小HTTP头/Cookie过大 会报400 错误 nginx 400 bad request求行假如高出buffer,就会报HTTP 414错误(URI Too Long)nginx接管最长的HTTP头部巨细必需比个中一个buffer大,不然就会报400的
HTTP错误(Bad Request)。
client_header_buffer_size 32k; #上传文件巨细限制large_client_header_buffers 4 64k; #设定请求缓