NGINX配置
@(nginx笔记)[nginx]
#运行用户
user xxxuser xxxgroup;
#启动进程,和CPU核心相等最好或"worker_processes auto;"自动检测
worker_processes 1;
#worker进程最大可打开文件数据限制,默认为操作系统的限制
worker_rlimit_nofile 30000;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
#epoll多路复用IO中的一种方式,仅用于linux2.6以上内核,可提高nginx性能
use epoll;
#单个后台worker process进程的最大并发链接数
#并发总数是 worker_processes 和 worker_connections 的乘积
#即 max_clients = worker_processes * worker_connections
#反向代理时为 max_clients = worker_processes * worker_connections / 4
#worker_connections 值设置大小受物理内存影响
#max_clients 并且受IO约束,值最好小于系统可打开最大文件句柄再适当降低
#查看当前机器配置可打开句柄数 cat /proc/sys/fs/file-max
#最大连接数也受系统可能socket连接数限制(~64K)
worker_connections 1024;
#让NGINX在接收到一个新连接通知后调用accept()来接受尽可能多的连接
multi_accept on;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
#关闭版本显示
server_tokens off;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 10;#生产环境决定在短时间内用户不会有第二次请求
#关闭不响应的客户端连接
reset_timedout_connection on;
#客户端在指定时间内没有响应时判定超时,关闭连接
#default = 60
send_timeout 10;
#客户端请求头信息以及实体信息超时未响应 NGINX返回 “Request time out 408”
#default = 均为60
client_header_timeout 10;
client_body_timeout 10;
#指定用来存储所有访问连接数值的共享内存空间大小
#1m约存储1.6W个64位的状态
#http://nginx.org/cn/docs/http/ngx_http_limit_conn_module.html
limit_conn_zone $binary_remote_addr zone=addr:5m;
#限制每个IP同时允许的连接数,从共享空间addr中读取,否则NGINX返回 “Service unavailable 503”
#limit_conn addr 50;
#默认字符集
charset UTF-8;
#gzip
gzip on;
gzip_disable "msie6"; #对IE6关闭gzip功能
gzip_proxied any; #对所有请求类型开启gzip
gzip_min_length 1000; #最小启用gzpi的文件字节大小,太小文件反而不划算 default:0
gzip_comp_level 4; #压缩级别 1最低 9最高 default:1
#负载均衡配置
upstream loginweb {
# server 192.168.1.138:80;
server 192.168.1.133:80;
# server 192.168.1.135:80;
# server 192.168.1.136:8088;
server 127.0.0.1:808 backup;#所有负载机宕机后的展示页
}
server {
listen 80;
server_name *.cos.com;
charset utf-8;
access_log logs/loginweb.access.log main;
#代理
location / {
proxy_pass http://loginweb;
#向后端转发用户来访IP
proxy_set_header X-Real-IP $remote_addr;
#请求和后端连接超时时间,在此时间内后端必须响应前端握手请求
#default = 60s
proxy_connect_timeout 5;
#后端连接成功后,后端处理数据的时间
#default = 60s
proxy_read_timeout 60;
#后端数据传回时间
#default = 60s
proxy_send_timeout 60;
#从后端读取的第一部份应答缓冲区大小 通知包含一个小的答应头
#default = 4k / 8k
#proxy_buffer_size = 4k;
#从后端读取的数据缓存区数目和大小
#default = 8 4k/8k
proxy_buffers 8 18k;
#proxy_buffers设置的缓冲区使用完后再申请的缓冲大小(高负载)
#default = proxy_buffer_size * 2
proxy_busy_buffers_size 64k;
#代理缓冲区临时文件大小
#default = proxy_buffer_size * 2
#proxy_temp_file_write_size 64k;
#代理缓冲区临时文件最大大小
#default = 1G
proxy_max_temp_file_size 128m;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#backup站点以及状态页
server {
listen 808;
server_name 127.0.0.1;
access_log logs/noserver.access.log main;
location / {
root html;
index noserver.html;
}
location /status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow 192.168.1.135;
deny all;
}
}
#关闭所有未绑定的默认站点
server {
listen 80 default;
return 500;
}
}