反向代理、負載均衡

反向代理:

有一羣服務器集羣,並且服務器集羣中的每臺服務器內容一樣時,我們要直接從個人電腦訪問到服務器集羣服務器的時候無法訪問,必須通過第三方服務器才能訪問集羣。通過第三方服務器知道要訪問哪一臺服務器提供的內容,此時的代理方式稱爲反向代理。

負載均衡

在訪問服務器集羣的時候 ,用戶的訪問會先訪問一箇中間服務器,再讓這個中間服務器在服務器集羣中選擇一個壓力較小的服務器,將該訪問請求引入選擇的服務器。(nginx會給你分配服務器壓力小的去訪問)

nginx反向代理與負載均衡的實現

用戶訪問網站的時候首先會訪問nginx服務器,然後nginx服務器在從服務器集羣中選擇壓力較小的服務器,將該訪問請求引向該服務器。

反向代理的配置: proxy_pass

項目的開發機地址填寫到proxy_pass後

server{
		listen 80;
		location / {
				proxy_pass http://12.12.12.12:123456
		}
}

介紹三個指令:

  • ip_hash指令:如果第一次訪問該服務器後被記錄,之後的訪問都是該服務器
  • server指令
  • upstream指令及相關變量
// 修改nginx.conf
worker_processes 1;//工作進程數,和cpu核數相同
events {
    worker_connections 1024;//每個進程允許的最大連接數
}
http {  //負載均衡模塊
    upstream firstdemo {  //服務器
    	ip_hash;
        server 39.106.145.33;
        server 47.93.6.93;
    }
    server { //實現反向代理
        listen 8080; //監聽端口
        location / {  //訪問根路徑
            proxy_pass http://firstdemo;//代理到firstdemo的兩個服務器上
        }
    }
}

一般我們會設置一個server_name,用指定域名的方式去訪問

server {
    listen       80;
    server_name  test.weiqiujuan.com ;
    auth_basic off;
    location / {
        proxy_pass    http://10.10.10.10:20186;
        proxy_set_header Host $host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout 60;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
    }
}

這樣開發,產品,設計均可以通過域名“test.weiqiujuan.com”來訪問開發環境,進行各類走查。

nginx常用命令:

  1. 查看版本號:nginx -v
  2. 啓動nginx: nginx
  3. 關閉nginx: nginx -s stop,停止nginx服務
  4. 修改配置之後,重啓nginx: nginx -s reload
  5. 檢查配置是否正確: nginx -t(ok或者successful表示成功)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章