国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

【翻譯】Reverse Proxy Guide 反向代理指南

2024-06-28 16:00:36
字體:
來源:轉載
供稿:網友

翻譯自:https://httpd.apache.org/docs/2.4/en/howto/reverse_PRoxy.html

除了充當”basic”服務器向用戶提供靜態及動態的內容之外,Apache服務器跟大多數服務器一樣,能夠提供反向代理服務方案,也被稱為”gateway”服務器

在這樣的場景中,httpd自己不生成或托管數據,而是從一個或多個后端服務器(通常沒有直接與外部網絡連接)獲取內容。當httpd從客戶端接收一個請求,這個請求自身被代理到其中一個后端服務器,這個后端服務器處理請求,生成內容并把內容發送至httpd,然后httpd生成實際的HTTP響應到客戶端。

這樣實現有眾多的原因,但是典型的原因是為了安全、高可用、負載均衡和集中認證授權。在反向代理中,關鍵在于布局、設計和建設后端基礎設施(即實際處理請求的服務器)使得其對外界隔離保護。對于客戶端而言,反向代理服務器是唯一的內容來源。

典型的實現如下: 這里寫圖片描述


反向代理

有關Modules

mod_proxymod_proxy_balancermod_proxy_hcheck

有關指令

ProxyPassBalancerMember

反向代理簡例

ProxyPass指定傳入的映射到后端服務器或一個負載均衡的服務器集群。例如將所有請求(“/”)代理到一個后端服務器:

ProxyPass "/" "http://www.example.com/"

為了代理和代理的位置:來自后端生成的頭部被更改到指向反向代理,而不是指向自身,ProxyPassReverse是最常用的指令:

ProxyPass "/" "http://www.example.com/"ProxyPassReverse "/" "http://www.example.com/"

之后確定的URIs能夠被代理,如下例:

ProxyPass "/images" "http://www.example.com/"ProxyPassReverse "/images" "http://www.example.com/"

在上例中,任何以/images的路徑會被代理到指定的后端服務器,其他的會在本地被處理

集群及負載均衡

反向代理是很有用的,但是仍有缺點,如單一后端節點的衰減和大負載(算力不足),使得代理這些請求不能提供真正的優勢。所以需要定義一個強力的后端服務集合或組群,一個能夠處理這樣的請求 和 反向代理能夠在組間進行負載均衡和故障轉移。這樣的組被稱為集群在Apache httpd中的術語是負載均衡,一個負載均衡的定義使用< Proxy >BalancerMember

<Proxy balancer://myset> BalancerMember http://www2.example.com:8080 BalancerMember http://www3.example.com:8080 ProxySet lbmethod=bytraffic</Proxy>ProxyPass "/images/" "balancer://myset/"ProxyPassReverse "/images/" "balancer://myset/"

balancer://<方案名>告訴httpd我們正在創建一個名為< 方案名 >的均衡集。集合包括2個后端服務器,httpd命名為BalancerMembers。在本案例中,任何來自于/images的請求將被代理到2個后端中的一個,ProxySet指定該均衡器使用一個給予I/O的負載均衡算法

均衡器及均衡器成員配置

你可以通過ProxyPass中定義的各種參數調整均衡器和工作程序的大量配置信息。例如,假設我們想要 http://www3.example.com:8080 處理3倍流量并且超時為1s,我們可以調整配置如下:

<Proxy balancer://myset> BalancerMember http://www2.example.com:8080 BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 ProxySet lbmethod=bytraffic</Proxy>ProxyPass "/images" "balancer://myset/"ProxyPassReverse "/images" "balancer://myset/"

故障轉移

你也可以微調各種故障轉移方案,可以詳細說明在這個方案中,那個均衡器成員甚至是均衡器應該被訪問。例如,以下實現的2個故障轉移方案:1、如果其他所有在集合中的均衡器成員不工作,http://hstandby.example.com:8080 是唯一的流量接收服務器;2、如果該工作程序本身失效,http://bkup1.example.com:8080 和 http://bkup2.example.com:8080 這2個均衡器成員進行輪換

<Proxy balancer://myset> BalancerMember http://www2.example.com:8080 BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 BalancerMember http://hstandby.example.com:8080 status=+H BalancerMember http://bkup1.example.com:8080 lbset=1 BalancerMember http://bkup2.example.com:8080 lbset=1 ProxySet lbmethod=byrequests</Proxy>ProxyPass "/images/" "balancer://myset/"ProxyPassReverse "/images/" "balancer://myset/"

這個故障轉移設置的魔法在于 http://hstandby.example.com:8080 帶有+H 狀態標志,這使得該服務器處于 熱備 模式。設置2個bkup# 服務器的組為 #1 負載均衡集合(默認集合為0);一旦故障轉移,熱備將在第一時間啟用,當所有常規的均衡器成員不可用時,負載均衡器將嘗試最小的集合(#0,#1,#2…)

均衡器管理

Apache httpd的逆向代理最獨特和有用的特性之一是嵌入式平衡器管理器(balancer-manager)應用程序。與mod_status類似,balancer-manager展示當前啟用的均衡器和均衡器成員正工作中的配置和狀態。但是,他不僅顯示這些參數,還允許大多數參數的動態,運行時,即時重新配置,包括添加新的均衡器成員(BalancerMembers)到一個存在的均衡器中。開啟這個功能,需要添加以下代碼到配置中:

<Location "/balancer-manager"> SetHandler balancer-manager Require host localhost</Location>

在反向代理服務器訪問url(http://rproxy.example.com/balancer-manager/)你將看到如下頁面

這里寫圖片描述

這種形式允許開發管理員調整各種參數,關閉均衡器成員,修改負載均衡模式以及添加新的均衡器成員。例如,點擊均衡器本身,你講看到如下頁面

這里寫圖片描述

單擊一個均衡器成員,顯示如下頁面

這里寫圖片描述

要使更改持續,需重啟反向代理,并確保BalancerPersist可用

動態健康檢查

在httpd將請求代理給均衡器成員之前,可以通過使用ProxyPass設置該均衡器成員的ping參數來測試該均衡器成員是否可用。通常,以動態的方式檢查均衡器成員的健康狀態是很有益處的。通過mod_proxy_hcheck實現

均衡器成員狀態標志

在均衡器管理中,顯示當前均衡器成員的狀態并且可以set/reset。這些狀態的含義如下: 這里寫圖片描述


上一篇:SSH工作原理

下一篇:nginx隱藏版本信息

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 澄城县| 遵化市| 聊城市| 永德县| 仁化县| 缙云县| 静海县| 无锡市| 彭山县| 合作市| 合水县| 福清市| 广汉市| 靖边县| 灵宝市| 安仁县| 临安市| 台湾省| 百色市| 宁城县| 德庆县| 盈江县| 江西省| 大荔县| 沧源| 鹰潭市| 赤壁市| 红桥区| 无为县| 婺源县| 扎兰屯市| 务川| 木里| 波密县| 黄浦区| 宕昌县| 丰台区| 江山市| 平潭县| 鄱阳县| 丰县|