1. 程式人生 > >nginx配置:反向代理和負載均衡

nginx配置:反向代理和負載均衡

 

參考部落格:https //blog.csdn.net/xuanjiewu/article/details/79458266

一:反向代理與正向代理

      正向代理:直接獲取目標伺服器資料(瀏覽器輸入a.com直接獲取甲網頁)

      反向代理:通過代理伺服器獲取目標伺服器資料(通過b.com也能獲取一個網頁,因為b.com去訪問a.com,

                                     所以我們輸入b.com表面上訪問的B,實際獲取一個的資料)

server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass              http://luckwml.top:80;     
            proxy_redirect          off;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    1.配置:

       這是我的CONF / nginx.conf配置檔案中的伺服器(可以配置多個)

   2.啟動

       視窗啟動的nginx的的,可以雙擊nginx.exe

   3.訪問

       在瀏覽器位址列輸入:  http:// localhost:8080 /

       看到將會  http://luckwml.top:80

 所訪問的頁面

二:負載均衡

       為了避免大量使用者同時訪問一臺機器,採用負載均衡,比如將請求分發在兩臺機器上。

     

    upstream  aa{
      server 48.98.52.51:80;
      server 48.98.52.52:80;
    }
    server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass              http://aa;
            proxy_redirect          off;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        }

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

   1.配置

       如圖所示,和反向代理比較可以很容易發現,多了上游配置,伺服器就是需要分發的伺服器,

       這裡假設兩臺伺服器48.98.52.51,48.98.52.52

   2.啟動(參考反向代理)

   3.訪問

       在瀏覽器位址列輸入:  http:// localhost:8080 /

       將會看到48.98.52.51:80或48.98.52.52:80訪問的頁面,一直訪問將會輪詢這兩臺伺服器。

===》在使用負載均衡的時候會遇到session丟失情況

      當用戶第一次訪問伺服器nginx將請求指向51伺服器,並儲存session登入資訊,

      再次訪問伺服器將請求指向52伺服器,這時session不存在,導致登入資訊不存在。(session保持)

     解決方法:ip_hash可以保證同一個ip訪問指向同一臺伺服器(不改變session儲存);

     補充:

            session保持:session儲存在某臺伺服器,保持不變;

            session複製:session值複製在每一臺伺服器,即每臺伺服器有相同的session值;

            session共享:將session值儲存在全域性共享的儲存介質來達到同樣的效果,如資料庫,快取等;

-------------------------------------------------- -------------------------------------------------- -----------------------------------

這是我對nginx的的的的簡單瞭解,如有理解不正確的地方,非常感謝能夠指點一下,謝謝!