`

nginx.conf

 
阅读更多

nginx\conf\nginx.conf 文件为nginx的主要配置文件。本文的内容来自网络。

#运行用户
#user  nobody;
 
#启动进程,通常设置成和cpu的数量相等
worker_processes  1;
 
#全局错误日志及PID文件
#error_log  logs/error.log;
#pid        logs/nginx.pid;
 
#工作模式及连接数上限
events {
    use   epoll;              #epoll是多路复用IO(I/O Multiplexing)中的一种方式,
                              #但是仅用于linux2.6以上内核,可以大大提高nginx的性能
    worker_connections  1024; #单个后台worker process进程的最大并发链接数
    #multi_accept on;
}
 
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
    #设定mime类型,类型由mime.type文件定义
    include       mime.types;
    default_type  text/html;
 
    #设定日志格式
    #access_log  logs/access.log  main;
 
    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
    #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
    sendfile        on;
 
    #tcp_nopush     on;
 
    #连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;
     
    #开启gzip压缩
    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
 
    #设定请求缓冲
    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
 
    #设置临时目录
    #proxy_temp_path temp;
 
    #设置缓存目录为二级目录,共享内存区大小,非活动时间,最大容量,注意临时目录要跟缓存目录在同一个分区。
    #设置Web缓存区名称为cache_one,内存缓存空间大小为30MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。 
    #proxy_cache_path proxy_cache levels=1:2 keys_zone=cache_one:30m inactive=1d max_size=30g;
 
    #不允许客户端主动关闭连接,如果该项为设置在nginx的日志中可能出现499 错误
    proxy_ignore_client_abort on;
    #nginx 和后端服务器连接超时时间 发起握手等候响应时间
    proxy_connect_timeout 5;
    #连接成功后等候后端服务器响应时间,其实已经进入后端的排队等候处理
    proxy_read_timeout 60;
    #后端服务器数据回传时间,就是在规定的时间内后端服务器必须传完所有的数据
    proxy_send_timeout 5; 
    #代理请求缓存去,该缓存去间保存用户的头信息,以供nginx进行规则处理一般只要保能保存下头信息即可
    proxy_buffer_size 32k;
    #告诉nginx保存单个用的几个buffer 最大用多少空间
    proxy_buffers  4 64k;
    #高负载下缓冲大小(proxy_buffers*2)
    proxy_busy_buffers_size 128k;,
    #设置缓存文件夹大小,如果大于该值,将从upstream 服务器传递请求,而不缓冲到磁盘上
    proxy_temp_file_write_size 1024m;
    #设定负载均衡的服务器列表
    upstream mysvr {
        #weigth参数表示权值,权值越高被分配到的几率越大
        #本机上的Squid开启3128端口
        server 192.168.8.1:3128 weight=5;
        server 192.168.8.2:80  weight=1;
        server 192.168.8.3:80  weight=6;
    }
 
    server {
        #侦听80端口
        listen       80;
 
        #定义使用www.xx.com访问
        server_name  www.xx.com;
         
        #字符集
        #charset UTF-8;
 
        #设定本虚拟主机的访问日志
        access_log  logs/www.xx.com.access.log  main;
        #默认请求
        location / {
            #定义服务器的默认网站根目录位置
            root   /root;     
            #定义首页索引文件的名称
            index index.php index.html index.htm;  
 
            #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
            proxy_next_upstream http_502 http_504 error timeout invalid_header;
 
            #进行缓存,使用Web缓存区cache_one
            proxy_cache cache_one;
            #以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内 
            proxy_cache_key $host$uri$is_args$args;  
            #对不同的HTTP状态码设置不同的缓存时间
            proxy_cache_valid 200 304 12h;
            proxy_cache_valid 301 302 1m;
            proxy_cache_valid any 1m;
 
            proxy_set_header  Host $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $remote_addr;
 
            #设定proxy_set_header Accept-Encoding ''; (或是后台服务器关闭gzip),这样这台机器才不会缓存被压缩的文件,造成乱码
            proxy_set_header  Accept-Encoding "none";
            #这段配置加上后,proxy_cache就能支持后台设定的expires。
            proxy_ignore_headers "Cache-Control" "Expires";
             
            #不进行缓存,直接转到后端服务器。
            proxy_pass http://my_server_pool;
            #过期时间为 1h=1小时, 1d=1天
            expires  1h;
 
            fastcgi_pass  www.xx.com;
            fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
        }
        # 定义错误提示页面
        error_page   500 502 503 504 /50x.html; 
        location = /50x.html {
            root   /root;
        }
        #静态文件,nginx自己处理
        location ~ ^/(images|javascript|js|css|flash|media|static)/ {
            root /var/www/virtual/htdocs;
            #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
            expires 30d;
        }
        #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
        location ~ \.php$ {
            root /root;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;
            include fastcgi_params;
        }
        #设定查看Nginx状态的地址
        location /NginxStatus {
            stub_status            on;
            access_log              on;
            auth_basic              "NginxStatus";
            auth_basic_user_file  conf/htpasswd;
        }
        #禁止访问 .htxxx 文件
        location ~ /\.ht {
            deny all;
        }  
     } # end server   
  }# end http

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics