2018年10月2日補充:
代理服務器
- 含義:「客戶端」在發送請求時,先發送給「代理服務器」,「代理服務器」接受請求後轉發給「服務端」,「服務端」處理請求後返回數據給「代理服務器」,「代理服務器」存儲數據並轉發給「客戶端」
- 目的:
- 提高訪問速度:「客戶端」訪問相同的站點數據時,直接從「代理服務器」中讀取,起到緩存的作用
- 防火牆:可爲「服務端」過濾某些不安全的請求信息
翻牆看片可訪問受限網點:「客戶端」訪問受限時,可通過不受限的「代理服務器」訪問目標站點
正向、反向代理
正向代理:架設在「客戶端」與「服務端」之間,用於代理內部網絡對 Internet 的連接請求
反向代理:架設在「服務端」,緩存熱點請求的頁面同時將請求轉發給內部對應的服務器
反向代理的應用:
- 防禦外網對內網服務器的惡性攻擊(訪問安全控制)
- 緩存熱點數據
- 負載均衡
- 轉發
- 故障移除
- 恢復添加
Nginx實現負載均衡
-
分發策略
- 輪詢:你一個,我一個,他一個
- 最少連接數:誰不忙,就給誰
- 權重:你一個,我兩個,他三個,權重與訪問成正比,應用於服務器性能不均的場景
- IP_HASH:依據訪問 IP 的固定 HASH 值進行分配, 解決Session共享問題
-
配置
upstream ydc-coding { # 配置權重 server 116.196.66.192:8081 weight=3; server 116.196.66.192:8082 weight=2; # 不參與負載 server 116.196.66.192:8083 down; # 備胎 server 116.196.66.192:8084 backup; } server { listen 80; server_name ydc-coding.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://ydc-coding; index index.html index.htm; } }
-
Keepalived + Nginx 實現高可用
Nginx作爲負載均衡器,所有請求都到了Nginx,可見Nginx處於非常重點的位置,如果Nginx服務器宕機後端web服務將無法提供服務,影響嚴重。
爲了避免負載均衡服務器的宕機故障,需要建立一個備份機。主備機上都運行高可用(High Availability)監控程序,通過傳送心跳信息來監控對方的運行狀況。當備份機不能在一定的時間內收到對方的正常心跳時,它就接管主服務器的服務IP並繼續提供負載均衡服務;當備份管理器又從主管理器收到“I am alive”這樣的信息時,它就釋放服務IP地址,這樣的主服務器就開始再次提供負載均衡服務。
RD常用操作
在實際開發中,很少能自己去配置這些東西,關於Nginx這塊,更多的是去申請配置 新增location
、新增域名
、機器調整
等操作。
新增域名:
upstream ydc-coding {
server 116.196.66.192:8081;
server 116.196.66.192:8082;
}
location / {
proxy_pass http://ydc-coding;
}
新增location:
location /Bug {
proxy_pass http://ydc-coding;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
機器調整:
upstream ydc-coding {
server 116.196.66.192:8083;
server 116.196.66.192:8084;
}