使用nginx做load balance

1. 安裝nginx
apt-get update
apt-get install nginx

2. 配置偵聽端口
/etc/nginx/site-available/default  -- 修改server的偵聽端口80爲其它端口,否則因爲80端口已經被apache佔用,nginx啓動會失敗

3. 配置優化nginx.conf文件
/etc/nginx/nginx.conf

# ubuntu 14.04上, worker_processes值爲cpu數的一半; Ubuntu 16.04上爲cpu數
worker_processes auto;

# 連接數上線,設置到65535 (設置到ulimit -n命令獲取的一致)
worker_rlimit_nofile 65535;

events {
    #==worker進程同時打開的最大連接數,這裏設置到65535,有文章說,生產環境,至少要到10K。
    worker_connections 65535;
    #==告訴nginx收到一個新鏈接通知後接受儘可能多的鏈接
    multi_accept on;
    #==設置用於複用客戶端線程的輪訓方法
    use epoll;
}

4. 負載均衡配置
    a. /etc/nginx/site-available/default 裏,設置好偵聽的端口(見2#裏的端口列表);配置ServerName,如serv1,serv2等
        location / {
            proxy_pass http://ServerName;
        }
        #開啓nginx狀態監控
        location /status {
                stub_status on;
                access_log off;
        }
    b. /etc/nginx/nginx.conf 裏,增加upstream配置,其中的ServerName與default裏的對應。
     # 注意:本機IP,不要使用“localhost”。hosts文件裏,localhost被映射::1,這導致URL錯誤
     upstream ServerName {
        server 127.0.0.1:8103;
        server 127.0.0.1:8108;
     }
    c. 可以在一個nginx裏配置多個load balance。只要設置對應的server和upstream節點就可以了

5. 多端口偵聽

  配置多個server節點,每個server節點偵聽不同端口即可。

6. 同一端口,不同site配置

  可以通過server裏的location來配置. 尋址時,最後匹配 / 的location

  location /servername {...}  #訪問URL爲: http://xxxx:port/servername/xxxxxx

  location / {...}  # 訪問URL爲: http://xxxx:port/...

7. 代理和負載, nginx可以做比較複雜的轉發. 可以通過配置location, 將大量的站點集成到一個域名中. 實踐使用中, 儘量簡化映射關係. 不要使用太複雜的映射.

 可以使用多端口監控, 簡化映射(針對內部使用站點)

 location的設置,儘量不要使用複雜的正則表達式. 複雜意外着容易出錯, 增加維護成本和學習成本. 通過一些其它手段,簡化映射配置.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章