#user nobody;
worker_processes 10;多少进程
error_log logs/error.log info;记录什么级别的错误日志
pid logs/nginx.pid; 进程文件
events {
worker_connections 10000; 最大连接就是进程*这个
}
http {
include mime.types;
default_type application/octet-stream;
log_format main ‘$remote_addr – $remote_user [$time_local] $status ‘ 这里是日志
‘”$request” $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;
access_log logs/access.log main;
client_header_timeout 3m; 客户端连接上来以后3秒还不发送请求 就断开
client_body_timeout 3m; 同上
send_timeout 3m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
gzip on;
gzip_min_length 1100; 小于这个就不压了
gzip_buffers 4 8k;
gzip_types text/* application/x-javascript; 压缩的类型
#output_buffers 1 32k;
output_buffers 1 512k;
gzip_comp_level 9;
postpone_output 1460;
upstream mysvr{#这里定义负载均衡服务器
server 127.0.0.1:8080 weight=1;
}
server {
listen 80;
server_name localhost;
#server_name 192.168.0.253;#写成本机ip就可以
charset utf-8;字符集
access_log logs/host.access.log main;日志
下面一段用于设置nginx的proxy_store:
To be clear proxy_store is not a cache, it’s rather mirror on demand.
To be clear proxy_store is not a cache, it’s rather mirror on demand. 因为没有过期头(expire的概念)
location ~* \.(jpg|gif|png|css|swf|html|htm)$ {
root /var/html/$host;远端被缓存的文件都会被放到这里
proxy_store on;
proxy_set_header Host $host;
proxy_temp_path /web/html/tmp;缓存的tmp目录
proxy_set_header Accept-Encoding ”;
proxy_store_access user:rw group:rw all:rw;权限
if ( !-f $request_filename ) {
proxy_pass http://mysvr;这样只有不存在才回去后端拉
}
}
# location ~ \ * {
location / {
proxy_pass http://mysvr;
proxy_redirect off;
proxy_store 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 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
location / {
proxy_pass http://mysvr; #前面定义的upstream
# 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; 重写http头,没写会导致访问不了
client_max_body_size 10m; #客户端发送的body,在上传附件的时候可能比较大
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
# proxy_send_lowat 12000;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location ~ \.(gif|js|css)$ { #图片,css本地解析
root /usr/local/tomcat6.bak/webapps/ROOT;
expires 24h;#过期时间
}
location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)$
{
access_log off;#图片和css不记录日志
}
location /status {
stub_status on;
access_log logs/access-status-ip.log;
auth_basic “status”;
#auth_basic_user_file conf/user; 设置管理员查看连接情况目录
allow 192.168.0.87;
# allow 10.1.1.0/16;
deny all;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
参考文章:
http://wiki.codemongers.com/NginxFullExample2 威客
http://www.chinaunix.net/jh/13/1319835.html chinaunix
NginxStatus 显示的内容意思如下:
* active connections – 当前 Nginx 正处理的活动连接数。
* server accepts handled requests — 总共处理了 14553819 个连接 ,
成功创建 14553819 次握手 ( 证明中间没有失败的 ), 总共处理了 19239266 个请求 ( 平均每次握手处理了 1.3 个数据请求 )。
* reading — nginx 读取到客户端的 Header 信息数。
* writing — nginx 返回给客户端的 Header 信息数。
* waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading + writing),
意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。
* 另外转剑心的关于解析泛域名 说不定哪天用上:
* ++++++++++++++++++++++++++++++++++++++++++++++
*
nginx支持泛域名解析的方法
*
http://bbs.bsdlover.cn/thread-2194-1-1.html
要使用Nginx下的泛域名支持,必须在编译 Nginx的时候加上
–with-http_sub_module
freebsd下ports安装的时候有提示的,选上即可。
方法我google了半天,网上的好多我照做都是不行的,例如这个:
listen 80;
server_name www.yourdomain.com *.yourdomain.com;
这个会提示:
# nginx -t
2009/01/04 13:22:56 [emerg] 63944#0: conflicting parameter “*.bsdlover.cn” in www.conf:14
2009/01/04 13:22:56 [emerg] 63944#0: the configuration file nginx.conf test failed
还有些文章里面说的是:
server_name .yourdomain.com;
这个也是不行的,经过我的实验,正确的做法是:
listen 80;
server_name _;
这样就可以了,留个笔记,呵呵
* ++++++++++++++++++++++++++++++++++++++
* 二级目录自动加 /
* if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
*
*
——————————————————————————————————————
nginx的日志管理:
——————————————————————————————————————
Nginx 支持下表中的信号:
信号名 作用描述
TERM, INT 快速关闭程序,中止当前正在处理的请求
QUIT 处理完当前请求后,关闭程序
HUP 重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求
USR1 重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件
USR2 平滑升级可执行程序
WINCH 从容关闭工作进程
用logrotate来管理;cat /etc/logrotate.d/nginx:
/usr/local/nginx/logs/*.log {
daily每天滚动
rotate 7保留7份
nocompress不压缩
postrotate在执行完滚动后:
if [ -f /usr/local/nginx/logs/nginx.pid ]; then
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
fi
endscript
}
生效:logrotate -f 这个文件