4.50Nginx負載均衡

Nginx負載均衡

Nginx負載均衡

  • 負載均衡:負載均衡(Load Balance)其意思就是分攤到多個操做單元上進行執行,例如Web服務器、FTP服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工做任務。簡而言之,就是把請求均衡地分發到後端的各個機器上面。
  • 好比,A B C D四臺WEB服務器,如今E要訪問這4臺服務器,F爲Nginx反向代理服務器,能夠讓F把E的請求均衡地發送到A B C D四臺服務器上。

配置負載均衡實例

  • 搭建實驗環境nginx

    • A機器爲客戶機,只有一塊網卡,不能訪問外網
    • B機器爲Nginx負載均衡機器,兩塊網卡,既能與A機器通訊,也能夠訪問外網
  • 預期結果:A機器能經過B機器上配置的負載均衡來訪問外網的web站點web

  • 實驗步驟:後端

    • 用www.qq.com爲例子,經過訪問ping.chianz.com查詢得www.apelearn.com對應的ip地址。
    • 在B機器上建立/etc/nginx/conf.d/www.apelearn.com.conf的配置文件
    • 在配置文件中寫下以下內容:
    upstream apelearn
    {
        ip_hash;
        server 115.159.51.96:80 weight=100;
        server 47.104.7.242:80;
    
    }
    server
    {
        listen 80;
        server_name www.apelearn.com;
        location /
        {
            proxy_pass http://apelearn;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    • 配置文件中的weight是權重的意思,最大100,優先訪問最高,最小0。
    • 在A機器上配置hosts文件,讓www.apelearn.com指向B機器的內網地址
    • 在B機器上執行ngixn -t 的命令來驗證配置文件是否有錯,而後reload -s reload
    [root@localhost conf.d]# nginx -t
    	nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    	nginx: configuration file /etc/nginx/nginx.conf test is successful
    	[root@localhost conf.d]# nginx -s reload
    • 將443端口加入firewalld防火牆的規則中,讓防火牆放行80端口。
    [root@localhost conf.d]# firewall-cmd --add-port=80/tcp --permanent
    	success
    	[root@localhost conf.d]# firewall-cmd --reload
    	success
  • 實驗結果:  能夠正常訪問該站點。服務器

  • 實際生產當中的負載均衡每每是使用的專門的硬件負載均衡,原理是跟實驗同樣的,不同的地方是,web服務時咱們提供的,有多臺服務器支撐,這些服務器都是在同一內網下的,而咱們的負載均衡設備是有內往外網兩個網口的。咱們的域名對應的ip是負載均衡的外網ip,當有大量用戶訪問站點時,負載均衡櫃把這些訪問請求按按咱們的需求分配給不一樣的服務器來處理。負載均衡

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息