nginx在asp.net mvc項目中 配置 初步快速入門

nginx 官方下載地址html

http://nginx.org/en/download.htmlnginx

通常.net項目要運行在IIS環境下,天然選擇windows版下載算法

我這裏下載了nginx/Windows-1.14.0並解壓包,conf目錄下找到nginx.conf文件,使用記事本方式打開。windows

裏面主要分爲幾大塊,全局塊、events塊、http塊、server塊和location塊。後端

下面是設置好的配置文件。緩存

#########-全局塊-#########

#user administrator administrators;  #配置用戶或者組
worker_processes  1; #容許生成的進程數,默認爲1
#pid        logs/nginx.pid; #指定nginx進程運行文件存放地址
error_log   logs/error.log error;  #制定日誌路徑,級別:debug|info|notice|warn|error|crit|alert|emerg 

########-events塊-########
events {
    accept_mutex on;   #設置網路鏈接序列化,防止驚羣現象發生,默認爲on
    multi_accept on;  #設置一個進程是否同時接受多個網絡鏈接,默認爲off
    #use epoll;      #事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024; #最大鏈接數
}

#########-http塊-#########
http {
    include       mime.types;  #文件擴展名與文件類型映射表
    default_type  application/octet-stream;  #默認文件類型,默認爲text/plain

    #access_log off; #取消服務日誌
    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;

    sendfile        on; #容許sendfile方式傳輸文件
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65; #鏈接超時時間

    #gzip  on;

    upstream mysvr.com {
    server 127.0.0.1:8080 weight=8;
    server 127.0.0.1:8081 weight=9;
    }

    server {
        listen       80;  #監聽端口
        server_name  127.0.0.1;   #監聽地址

        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
            #root   html; #根目錄
            #index  index.html index.htm; #設置默認頁
            random_index on;  #隨機訪問服務器
            #設置主機頭和客戶端真實地址,以便服務器獲取客戶端真實IP
            proxy_set_header    X-Real-IP           $remote_addr;
            proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
            proxy_set_header    Host                $http_host;
            proxy_set_header    X-NginX-Proxy       true;
            proxy_set_header    Connection          "";
            proxy_http_version  1.1;
            proxy_connect_timeout 1; 
            proxy_send_timeout 30; 
            proxy_read_timeout 60;
            client_max_body_size 50m;
            client_body_buffer_size 256k;
            proxy_pass  http://mysvr.com;  #請求轉向mysvr 定義的服務器列表
        }

        #error_page  404              /404.html;  #錯誤頁

        # redirect server error pages to the static page /50x.html
        #
        #error_page   500 502 503 504  /50x.html;
        #location = /50x.html {
        #    root   html;
        #}

    }

}

#號表明註釋,這裏主要說明下server塊和location塊。服務器

server塊中 listen       80   顧名思義這是nginx啓動後監聽的端口,server_name就是監聽IP地址,部署的時候要填寫外網IP就能夠了。

location塊中 root是訪問根目錄,index是默認頁,咱們這裏使用proxy_pass反向代理轉發其餘服務器地址就先註釋掉了。
接下來講下,proxy_pass 配置
proxy_pass  http://mysvr.com;   mysvr.com是自定義的名字,經過上面定義的upstream塊映射獲取server地址訪問。

upstream mysvr.com {
    server 192.168.1.10:8080; server 192.168.1.10:8081;  }
    默認方式:依照輪詢,方式進行負載,每個請求按時間順序逐一分配到不一樣的後端服務器。假設後端服務器down掉。能本身主動剔除。儘管這樣的方式簡便、成本低廉。但缺點是:可靠性低和負載分配不均衡。
upstream mysvr.com {
    server 192.168.1.10:8080 weight=8; server 192.168.1.10:8081 weight=9;  }
weight概率方式:指定輪詢概率,weight和訪問比率成正比,用於後端服務器性能不均的狀況,若是後端服務器down掉,能自動剔除。

upstream mysvr.com {
ip_hash; server 192.168.1.10 weight=8; server 192.168.2.10 weight=9; }
ip_hash:每一個請求按照發起客戶端的ip的hash結果進行匹配,這樣的算法下一個固定ip地址的客戶端總會訪問到同一個後端服務器,這也在必定程度上解決了集羣部署環境下session共享的問題。

upstream mysvr.com{      
      server 192.168.1.10
      server 192.168.2.10
      fair; 
}
fair(第三方)按後端服務器的響應時間來分配請求,響應時間短的優先分配。與weight分配策略相似。

 upstream mysvr.com{
      server 192.168.1.10:8080;
      server 192.168.1.10:8081;
      hash $request_uri;
      hash_method crc32;
}
url_hash(第三方)按訪問url的hash結果來分配請求,使每個url定向到同一個後端服務器。後端服務器爲緩存時比較有效。
注意:在upstream中加入hash語句。server語句中不能寫入weight等其餘的參數,hash_method是使用的hash算法。upstream還可以爲每個設備設置狀態值,這些狀態值的含義分別例如如下:down 表示單前的server臨時不參與負載.weight 默以爲1.weight越大,負載的權重就越大。max_fails :贊成請求失敗的次數默以爲1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤.fail_timeout : max_fails次失敗後。暫停的時間。backup: 其餘所有的非backup機器down或者忙的時候,請求backup機器。因此這臺機器壓力會最輕。upstream bakend{ #定義負載均衡設備的Ip及設備狀態       ip_hash;       server 10.0.0.11:9090 down;       server 10.0.0.11:8080 weight=2;       server 10.0.0.11:6060;       server 10.0.0.11:7070 backup; }都配置好後,就能夠啓動nginx了,雙擊nginx.exe運行也能夠。或者打開cmd窗口,進入nginx目錄下運行start nginx 啓動。運行nginx.exe -s reload 重啓。nginx.exe -s stop 中止服務。
相關文章
相關標籤/搜索