nginx配置文件参考

nginx.conf

#主要是解释参数作用,未必完全正确,具体参数值需要根据实际情况进行调整

user  nginx;#启动nginx的用户名

worker_processes  2;#CPU核心数
worker_cpu_affinity 01 10;#将进程和CPU核绑定,减少切换开支
#worker_rlimit_nofile 65535;#一个进程可以打开的最多文件描述符数,每个代表一个连接

error_log  /var/log/nginx/error.log warn;#错误日志及级别
pid        /var/run/nginx.pid;#保存nginx进程pid文件的地址

events {
    use epoll;#使用epoll方法调度
    worker_connections  1024;#每个进程最大并发连接数
}


http {
    include       /etc/nginx/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  /var/log/nginx/access.log  main;#请求日志

    server_names_hash_bucket_size 128;#服务名hash大小

    client_header_buffer_size 32k;#客户端请求头的buffer大小
    large_client_header_buffers 4 128k;#处理较大的请求头的buffer数量和大小
    client_max_body_size   10m;#客户端请求体最大大小
    client_body_buffer_size 128k;#缓冲区代理缓冲用户请求的最大字节数
    client_body_timeout 60s;#客户端发送超时,如果超时未发送数据则返回408
    send_timeout 60s;#如果向客户端发送数据,客户端这么长时间没收到任何信息,则中断连接

    sendfile        on;#使用sendfile函数进行I/O,日常开启,下载服务器关闭

    #tcp_nopush     on;#上传下载文件时可以开启,TCP会尽可能发大包而不是小包
    tcp_nodelay    on;#如果是长连接,可以提高小包传输效率
    keepalive_timeout  65;#长连接超时时间

    gzip  on;#gzip压缩选项
    gzip_min_length 1k;#gzip压缩的文件的最小大小
    gzip_buffers 4 16k;#使用的buffer大小
    gzip_comp_level 2;#压缩等级
    gzip_types text/plain application/json image/jpeg image/gif image/png;#要压缩的文件类型
    gzip_disable "MSIE [1-6].";#微软的IE浏览器请求不压缩

     #负载均衡
    proxy_connect_timeout 75;#代理连接超时
    proxy_send_timeout 75;#代理发送超时
    proxy_read_timeout 75;#代理接收超时
    proxy_buffer_size 4k;#代理buffer大小
    proxy_buffers 4 32k;#代理总buffer大小
    proxy_busy_buffers_size 64k;#高流量时代理的buffer大小
    proxy_temp_file_write_size 64k;#代理缓存写入大小
    proxy_temp_path /usr/local/nginx/proxy_temp 1 2;#代理缓存地址

    proxy_cache_path /data/nginx_cache/ssd1/ levels=1:2 keys_zone=my_zone_1:10m inactive=300s max_size=5g;#设置代理的cache路径及相关参数
    proxy_cache_path /data/nginx_cache/ssd2/ levels=1:2 keys_zone=my_zone_2:10m inactive=300s max_size=5g;#设置代理的cache路径及相关参数
    split_clients $request_uri $my_cache {#cache负载均衡到两个硬盘上的选项
         50%          “my_zone_1”;
         50%          “my_zone_2”;
}
    proxy_cache_key    $host$request_uri;#定义cache的key
     


     #设定负载均衡后台服务器列表 
    resolver 114.114.114.114;#设定DNS服务器
                                              
    upstream backend {
    
    #ip_hash;均衡负载算法

    server 192.168.0.1		weight=5;#也可以是域名,但是要有后端DNS服务器或者hosts文件中存在
    server 192.168.0.2:8080	fail_timeout=5s;
    server 192.0.2.3		max_fails=3 fail_timeout=30s ;#最大失败次数,失败后等待重试
    server www.example.com;

    server 192.168.0.5:8080  down;#暂不参与负载均衡
    server 192.168.0.6:8080  backup;#预留后备服务器
}

    include /etc/nginx/conf.d/*.conf;#子服务配置文件
}

/conf.d/default.conf

server {
    listen       80;#监听80端口
    server_name  localhost;#服务名

    #charset koi8-r;#字符集
    #access_log  /var/log/nginx/host.access.log  main;#访问日志

    location / {  #/目录
        root   /usr/share/nginx/html;#/目录映射的根目录
        index  index.html index.htm;#首页
        #allow 172.29.73.0/24; #可以允许某些IP(段)的访问
    }

    error_page   500 502 503 504  /50x.html;#50x错误代码和网页
    location = /50x.html {
        root   /usr/share/nginx/html;#50x代码的网页所在的目录
        expires 1d;#浏览器cache缓存1天
    }

    #location ~ \.php$ {
	#      proxy_pass http://127.0.0.1;#代理转发,还可以用 proxy_pass http://backend;这样的方式做负载均衡,http可以修改为https等其他协议
	#      proxy_set_header Host $host;#代理转发参数,主机名
	#      proxy_set_header X-Real-IP $remote_addr;#代理转发参数,路径上的前一个IP
    #      proxy_set_header X-Real-Port $remote_port;#路径上的前一个端口号
	#      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#路过的所有IP
    #       proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;#一台服务器报这些错后是否让其他服务器处理
    #       proxy_cache $my_cache;#使用上面定义的proxy_cache
    #       proxy_cache_bypass $arg_noCache;#定义不进行cache的请求
    #       proxy_cache_valid 200 206 14d;#对指定状态进行缓存
    #       proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;#出现这些错误时发送旧版文件,而不是错误信息,可以减少回源次数
    #       proxy_cache_lock on;#缓存并发锁,未命中时只有一个回源请求
    #       proxy_cache_lock_timeout 1s;#缓存超时等待时间
    #}

    #location ~ \.php$ {
    #       root           html;#cgi根目录地址
    #       fastcgi_pass   127.0.0.1:9000;#cgi服务器转发地址和端口
    #       fastcgi_index  index.php;#cgi首页
    #       fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#cgi文件
    #       include        fastcgi_params;#可以设定fastcgi传递的相应参数
    
	#      fastcgi_connect_timeout 300;  #与后端连接超时时间
	#      fastcgi_send_timeout 300;  #发送超时
	#      fastcgi_read_timeout 300;  #接收超时
	#      fastcgi_buffer_size 64k;  #cgi应答头的缓冲区大小
	#      fastcgi_buffers 4 64k;  #接受cgi应答的缓冲区大小
	#      fastcgi_busy_buffers_size 128k;  #fastcgi_buffers的两倍
	#      fastcgi_temp_file_write_size 128k;  #写入缓存文件的数据块大小,默认fastcgi_buffers的两倍

    #      fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;  #缓存地址,hash级别,名称和有效时间
	#      fastcgi_cache TEST;  #fastcgi缓存名,使用cache可以大大减少后端压力
	#      fastcgi_cache_valid 200 302 1h;  #应答码和相应的缓存时间
	#      fastcgi_cache_valid 301 1d;  
	#      fastcgi_cache_valid any 1m; 
    #}

    #location ~ /\.ht {
    #    deny  all;#禁止所有IP访问
    #}
}

posted @ 2019-12-30 11:09  很懒的虫  阅读(239)  评论(0编辑  收藏  举报