nginx
main --events
--http --upstream(多)
--server(多) -- location(多)
http {
include mime.types;
default_type application/octet-stream;
--http --upstream(多)
--server(多) -- location(多)
http {
include mime.types;
default_type application/octet-stream;
access_log /dev/stdout main;
##------socket配置----------##
sendfile on;
tcp_nodelay on;
#tcp_nopush on;
#server_names_hash_max_size 1024; ##设置servers hash表的大小,默认512;如果配置了多个虚拟server,比如24个域名对应一个地址,则需要考虑改此参数
sendfile on;
tcp_nodelay on;
#tcp_nopush on;
#server_names_hash_max_size 1024; ##设置servers hash表的大小,默认512;如果配置了多个虚拟server,比如24个域名对应一个地址,则需要考虑改此参数
##------client端请求设置----------##
keepalive_timeout 65;
client_header_timeout 60; ##读取整个header的超时时间
client_body_timeout 60; ##连续两次读取body的超时时间
send_timeout 10; ##这个超时时间是发送响应的超时时间,即Nginx服务器向客户端发送了数据包,但客户端一直没有去接收这个数据包。如果某个连接超过send_timeout定义的超时时间,那么Nginx将会关闭这个连接。timeout between two successive write operations for a client receiving a response.
client_header_buffer_size 128k; ##太小了会报400,Request Header Or Cookie Too Large,默认1kb. 定义了正常情况下Nginx接收用户请求中HTTP header部分(包括HTTP行和HTTP头部)时分配的内存buffer大小。有时,请求中的HTTP header部分可能会超过这个大小,这时large_client_header_buffers定义的buffer将会生效。
large_client_header_buffers 4 128k; ##定义了Nginx接收一个超大HTTP头部请求的buffer个数和每个buffer的大小。如果HTTP请求行(如GET/index HTTP/1.1)的大小超过单个buffer,则返回\"Request URI too large\"(414)。请求中一般会有许多header,每一个header的大小也不能超过单个buffer的大小,否则会返回\"Bad request\"(400)。当然,请求行和请求头部的总和也不可以超过buffer个数*buffer大小。
client_max_body_size 20m; ## 客户端请求body的最大大小,超过则报413 Request Entity Too Large,通常用来设置文件上传大小
## client_body_temp_path client_body_temp; ##默认是/usr/local/openresty/nginx/client_body_temp,可以自定义支持多级目录,client_body_temp_path client_body_temp 1 2;
client_body_buffer_size 128k; ##在接收HTTP包体时,如果包体的大小大于client_body_buffer_size,则会以一个递增的整数命名并存放到client_body_temp_path指定的目录中
large_client_header_buffers 4 128k; ##定义了Nginx接收一个超大HTTP头部请求的buffer个数和每个buffer的大小。如果HTTP请求行(如GET/index HTTP/1.1)的大小超过单个buffer,则返回\"Request URI too large\"(414)。请求中一般会有许多header,每一个header的大小也不能超过单个buffer的大小,否则会返回\"Bad request\"(400)。当然,请求行和请求头部的总和也不可以超过buffer个数*buffer大小。
client_max_body_size 20m; ## 客户端请求body的最大大小,超过则报413 Request Entity Too Large,通常用来设置文件上传大小
## client_body_temp_path client_body_temp; ##默认是/usr/local/openresty/nginx/client_body_temp,可以自定义支持多级目录,client_body_temp_path client_body_temp 1 2;
client_body_buffer_size 128k; ##在接收HTTP包体时,如果包体的大小大于client_body_buffer_size,则会以一个递增的整数命名并存放到client_body_temp_path指定的目录中
##-------proxy后端的设置---------##
proxy_buffering on; #默认是on
proxy_connect_timeout 10; ##控制连接超时,如果连接不上,直接502,Connection refused
proxy_read_timeout 60; ##控制连续两次读取后端响应的超时,如果后端长时间未响应则504,Connection timed out
proxy_send_timeout 10; ##控制连续两次向后端发送请求的超时,一般比较少发生
proxy_buffer_size 128k; ##缓存response的第一部分,通常是header,默认proxy_buffer_size 被设置成 proxy_buffers 里一个buffer 的大小,当然可以设置更小些。
proxy_buffers 128 128k; ##前面一个是num,后面一个是一个buffer的size,因此总共的buffers大小为=128*128k.Nginx将会尽可能的读取后端服务器的数据到buffer,直到proxy_buffers设置的所有buffer们被写满或者数据被读取完(EOF),此时Nginx开始向客户端传输数据,会同时传输这一整串buffer们。如果数据很大的话,Nginx会接收并把他们写入到temp_file里去,大小由proxy_max_temp_file_size 控制。
proxy_max_temp_file_size 1024m; ##默认情况下proxy_max_temp_file_size值为1024MB,也就是说后端服务器的文件不大于1G都可以缓存到nginx代理硬盘中,如果超过1G,那么文件不缓存,而是直接中转发送给客户端.如果proxy_max_temp_file_size设置为0,表示不使用临时缓存。
proxy_busy_buffers_size 128k; ##一旦proxy_buffers设置的buffer被写入,直到buffer里面的数据被完整的传输完(传输到客户端),这个buffer将会一直处 在busy状态,我们不能对这个buffer进行任何别的操作。所有处在busy状态的buffer size加起来不能超过proxy_busy_buffers_size,所以proxy_busy_buffers_size是用来控制同时传输到客户端的buffer数量的。
proxy_temp_file_write_size 128k; ##指定每次写temp file的大小
proxy_temp_path proxy_temp; ##默认值为/usr/local/openresty/nginx/proxy_temp
//......
}
}
全局设置:
user [user] [group] #指定nginx worker运行用户及用户组,默认nobody nobody
worker process [number|auto] #nginx进程数,建议与cpu一致
error_log [file] [log_level] #错误日志存放路径、日志级别
pid [file] #pid存储位置,默认logs/nginx.pid
worker_rlimit_nofile [number] #进程最多打开文件数,最好与ulimit -n值保持一致
worker process [number|auto] #nginx进程数,建议与cpu一致
error_log [file] [log_level] #错误日志存放路径、日志级别
pid [file] #pid存储位置,默认logs/nginx.pid
worker_rlimit_nofile [number] #进程最多打开文件数,最好与ulimit -n值保持一致
Events块:
user [mode] #nginx工作模式 select/poll标准模式,epoll高效模式
worker_connections [num] #每个进程最大连接数,默认1024
Http块:
include [file] #引用其他配置文件
default_type application/octet-stream #默认类型为二进制流
log_format xxx#日志格式
sendfile on; #开启高效传输文件
tcp_nodelay on;
tcp_nopush on; #这两个tcp开启用于防止网络阻塞
keepalive_timeout number; #连接超时时间
client_max_body_size 1024m; #客户端请求文件最大字节数
client_body_buffer_size 512k; #客户端请求字节数 buffer大小
client_header_timeout 30; #客户端请求头读取超时时间
client_body_timeout 10; #客户端请求内容读取超时时间
send_timeout 10; #响应客户端超时时间
reset_timedout_connection on;
(httpgzip部分)
[root@vps ~]# /opt/nginx/sbin/nginx -V
nginx version: nginx/1.0.14
built by gcc 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
configure arguments: --with-http_stub_status_module --with-http_gzip_static_module --prefix=/opt/nginx
gzip on; #开启gzip压缩
gzip_min_length 1k; #允许压缩页面最小字节数
gzip_buffers 4 16k; #申请4个单位为16k的内存
gzip_http_version 1.1;
gzip_comp_level 2; #gzip压缩比 1压缩比最小处理速度最快
gzip_types text/plain application/x-javascript text/css application/xml; #压缩类型
gzip_vary on; #允许前端缓存服务器缓存压缩页面
upstream块:
upstream cszhi.com{
ip_hash; 调度算法(轮询(默认rr)/ip_hash, )
server 192.168.8.11:80;
server 192.168.8.12:80 down; (down表暂时不参与负载均衡 backup预留备份机器)
server 192.168.8.13:8009 max_fails=3 fail_timeout=20s; (max_fail允许失败次数, fail_timeout失败后暂停服务的时间)
server 192.168.8.146:8080;
}
ip_hash; 调度算法(轮询(默认rr)/ip_hash, )
server 192.168.8.11:80;
server 192.168.8.12:80 down; (down表暂时不参与负载均衡 backup预留备份机器)
server 192.168.8.13:8009 max_fails=3 fail_timeout=20s; (max_fail允许失败次数, fail_timeout失败后暂停服务的时间)
server 192.168.8.146:8080;
}
Server块:
listen 80;
server_name "" localhost;
index 默认首页
root 网页根目录
charset 网页编码格式
access_log 访问日志存放路径
server_name "" localhost;
index 默认首页
root 网页根目录
charset 网页编码格式
access_log 访问日志存放路径
Location块:
# upload和html下的所有文件都交给nginx处理,30天过期
location ~ ^/(upload|html)/ {
root /web/wwwroot/www.cszhi.com;
expires 30d;
}
location ~ ^/(upload|html)/ {
root /web/wwwroot/www.cszhi.com;
expires 30d;
}

浙公网安备 33010602011771号