天天看點

nginx反向代理與負載均衡配置模闆

nginx.conf配置模闆

#user  nobody;#指定運作的使用者,Linux最好不要使用root使用者啟動,window環境不需要配置
#error_log  logs/error.log;#預設日志輸入路徑,可以更改
#error_log  /dev/null crit;#禁用error_log日志方法
#error_log  logs/error.log  notice;#指定輸出日志級别,可以使用預設級别
#error_log  logs/error.log  info;

#Linux環境核心轉儲檔案大小,win沒有該配置
#worker_rlimit_core 1000m;
#Linux核心轉儲檔案位置
# working_directory /usr/local/nginx/logs;

#pid        logs/nginx.pid;

#定義環境變量(Linux配置)
#env TESTPATH=/tmp/;

#綁定核心
# worker_processes 4;
# worker_cpu_affinity 1000 0100 0010 0001;

#使用epoll機制,Linux配置
# events {
#     use epoll;
#     worker_connections  1024;
# }


http {
    include       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  logs/access.log  main;
    #access_log off;#禁止通路日志
    #使用啟動高效傳輸檔案的模式,直接在磁盤和tcp socket之間傳輸資料,繞開buffer,Linux配置。
    sendfile        on; 
    #啟用不等待模式,配合sendfile一起用,Linux配置
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  ;

    #gzip  on;

    #配置負載均衡
    # upstream www.eakom.com { 
    #   ip_hash
    #   server  10.10.11.150:8888 weight=2; 
    #轉發失敗3次,30S内不可用
    #   server  10.10.11.150:8080 weight=5 max_fails=3 fail_timeout=30s; 
    #   server  10.10.12.28:8888 backup; #備用伺服器

    # } 

    server {
        listen       ;
        server_name  localhost;

        #charset koi8-r;
        #啟用Linux上的sendfile系統調用來發送檔案,它減少了核心态與使用者态之間的兩次記憶體複制,
        #這樣就會從磁盤中讀取檔案後直接在核心态發送到網卡裝置,提高了發送檔案的效率(小檔案)
        sendfile on;
        #大檔案
        aio off;

        #access_log  logs/host.access.log  main;
        location =/{
            #配置負載均衡
            #指定反向代理為上面配置的那個upstream節點“www.eakom.com”
            proxy_pass http://www.eakom.com;
            proxy_set_header  Host             $host:$server_port;
            proxy_set_header  X-Real-IP        $remote_addr; 
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_404;
            # #連結超過一秒馬上連結另一個連結 ,如果一台tomcat崩潰,該配置就很重要
            proxy_connect_timeout ;
            # 如過加載的是資料量較大的報表,頁面會很慢,參數需要設定大一點(很重要)
            proxy_read_timeout ;
            proxy_send_timeout ;
            proxy_buffer_size k;
            proxy_buffers  k;
            proxy_busy_buffers_size k;
            proxy_temp_file_write_size k;
            proxy_max_temp_file_size m;
            client_max_body_size m;
            client_body_buffer_size k;
            root   html;
            index  index.html index.htm;
        }
        #指向固定檔案夾 D:/software/Project/hh/views
        location =/views{
            root D:/software/Project/hh;
            autoindex on;#張開目錄
        }
        #指向D:/file/個人/圖檔/路徑
        location /down/ {
            #響應長度超過1M後限速
            limit_rate_after m;
            if ($slow) {
                #對請求的限速 預設為0 不限速
                set $limit_rate k;
            }
            limit_rate $limit_rate;
            alias D:/file/個人/圖檔/;
        }
        location /upload/ {
            #HTTP請求包體的最大值
            client_max_body_size m;
            proxy_pass http://backend;
        }
        location ~ ^/download/(.*)$ { #正規表達式并傳參
            alias D:/file/個人/圖檔/$1;#路徑别名
        }

        location /{
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page        /x.html;
        location = /x.html {
            #inernal;#内部通路
            root   html;
        }
        # 靜态資源擷取(~*不區分大小寫  ~為區分大小寫)
        location ~* \.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|ttf)$ {  
            root D:/software/MyEclipse-/Project/tjhy;  
        }


        #錯誤重定向到另外一個location
        location / (
            error_page  @fallback;
        )
        location @fallback (
            proxy_pass http://backend;
        )
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}
           

繼續閱讀