nginx

main --events
     --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个域名对应一个地址,则需要考虑改此参数

    ##------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指定的目录中

    ##-------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值保持一致

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;
}

Server块:
listen 80;
server_name "" localhost;
index 默认首页
root 网页根目录
charset 网页编码格式
access_log 访问日志存放路径

Location块:
# upload和html下的所有文件都交给nginx处理,30天过期
location ~ ^/(upload|html)/ {
root /web/wwwroot/www.cszhi.com;
expires 30d;
}
posted @ 2019-12-09 17:29  不知所以  阅读(166)  评论(0)    收藏  举报