码迷,mamicode.com
首页 > 其他好文 > 详细

nginx.conf

时间:2014-07-29 17:35:52      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   文件   io   

#运行用户
#user nobody;
#开启进程数 <=CPU数
worker_processes 1;
#错误日志保存位置
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#进程号保存文件
#pid logs/nginx.pid;

#等待事件
events {
#Linux下打开提高性能
#事件响应模式为为高效的 poll 模式
use epoll;
#(使用epoll的I/O 模型
补充说明:
与apache相类,nginx针对不同的操作系统,有不同的事件模型
A)标准事件模型
Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
B)高效事件模型
Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
Epoll:使用于Linux内核2.6版本及以后的系统。
/dev/poll:使用于Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。
Eventport:使用于Solaris 10. 为了防止出现内核崩溃的问题, 有必要安装安全补丁)

#每个进程最大连接数(最大连接=连接数x进程数)
#这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文
#件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
#现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。
#这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。
worker_connections 1024;
}


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;

#设定请求缓冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;

#打开发送文件
sendfile on;
tcp_nopush on;

#keepalive_timeout 0;
#keepalive超时时间
keepalive_timeout 65;

#客户端上传文件大小控制
client_max_body_size 8m;

#打开gzip压缩
gzip on;

## 这里取得原始用户的IP地址
map $http_x_forwarded_for $clientRealIp {
"" $remote_addr;
~^(?P<firstAddr>[0-9\.]+),?.*$ $firstAddr;
}

## 针对原始用户 IP 地址做限制
limit_conn_zone $clientRealIp zone=TotalConnLimitZone:20m ;
limit_conn TotalConnLimitZone 50;
limit_conn_log_level notice;

## 针对原始用户 IP 地址做限制
limit_req_zone $clientRealIp zone=ConnLimitZone:20m rate=10r/s;
#limit_req zone=ConnLimitZone burst=10 nodelay;
limit_req_log_level notice;

## 避免出现 502
fastcgi_buffers 8 128k;
send_timeout 60;


#设定负载均衡的服务器列表
upstream mytomcats { 
#weigth参数表示权值,权值越高被分配到的几率越大
#代表请求分发的百分比,默认为1.
#max_fails参数表示 最大失败3次
#fail_timeout参数表示 请求失败后 多少秒内不访问 (默认10s)
server 127.0.0.1:8081 weight=1 max_fails=3 fail_timeout=20s; 
server 127.0.0.1:8080 weight=2 max_fails=3 fail_timeout=20s; 
}

server { 
#nginx监听的端口
listen 80; 
#nginx过滤的ip或者域名 多个空格
server_name 127.0.0.1 www.baidu.com; 
#字符
charset UTF-8;

#防止爬虫
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") { 
return 403;
}

#查看nginx实时状态
location /status {
#配置验证信息
auth_basic "提示信息";
#用户名密码保存地址
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
#监控模块
stub_status on;
#关闭日志
access_log off;
}

#静态文件
location ~* \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ { 
#expires 30d; (过期时间,30天,可适量调整) 
root /web/www/html/; 
} 

#过滤所有以.html结尾的,必须要验证
location ~ \.html$ {
auth_basic "Restricted";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
access_log off;
}

#所有以 /2.0 目录后面的代理
location ^~/2.0/ {

## 最多 5 个排队, 由于每秒处理 10 个请求 + 5个排队,你一秒最多发送 15 个请求过来,再多就直接返回 503 错误给你了
limit_req zone=ConnLimitZone burst=5 nodelay;

proxy_pass http://mytomcats; 
proxy_redirect off; 
#保留客户端请求的域名信息
proxy_set_header Host $host;
#保留客户端请求的真实 IP 地 址,用于某些访问统计
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
client_max_body_size 10m; 
client_body_buffer_size 128k; 
proxy_connect_timeout 90; 
proxy_send_timeout 90; 
proxy_read_timeout 90; 
#设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffer_size 4k; 
#proxy_buffer缓冲区,网页平均在32k以下的话,这样设置
proxy_buffers 4 32k; 
#高负荷下缓冲大小 (proxy_buffers*2
proxy_busy_buffers_size 64k; 
#设定缓存文件夹大小,大于这个值,将从upstream服务器当代理下载的文件超过该参数设置的大小,nginx会先将文件写入临时目录?(缺省为????nginx?安装目下/proxy_temp目录)
proxy_temp_file_write_size 64k; 
} 

#禁止访问所有.txt文件
#     location ~/\.txt {
# deny all;
# }

}

# another virtual host using mix of IP-, name-, and port-based configuration 
server {
#多监听 
#listen localhost:8666;
#主机名
#server_name LIULJ2576;
#WEB文件路径
#root E:/Portal;
#默认首页
#index HomePage.html; 
#location / {
# #这里相当于局部变量
# root E:/Portal;
# index HomePage.html;
#}
}


# HTTPS server HTTPS SSL加密服务器
#
#server {
# listen 443;
# server_name localhost;

# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_timeout 5m;

# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

}

 

nginx.conf,布布扣,bubuko.com

nginx.conf

标签:style   blog   http   color   使用   os   文件   io   

原文地址:http://www.cnblogs.com/loveismile/p/3875721.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!