欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用?Apache?反向代理的設(shè)置技巧

 更新時(shí)間:2022年01月12日 10:29:25   作者:mikes?zhang  
這篇文章主要介紹了如何使用?Apache?設(shè)置反向代理,該模塊使用ProxyApache 配置文件中的 -prefixed 指令進(jìn)行配置。我們接下來會(huì)設(shè)置這些,需要的朋友可以參考下

Apache 是一個(gè)多功能的 Web 服務(wù)器,它提供了完整的支持功能,其中一些是通過擴(kuò)展來實(shí)現(xiàn)的。在本文中,我們將使用該mod_proxy模塊將 Apache 配置為反向代理角色。

雖然 Apache 可能不是您作為反向代理的首選,但 NGINX 等更現(xiàn)代的替代方案往往會(huì)引起注意,mod_proxy但對(duì)于已經(jīng)在運(yùn)行 Apache 并且現(xiàn)在需要將流量路由到另一個(gè)服務(wù)的服務(wù)器很有用。您可以設(shè)置 Apache 虛擬主機(jī)將給定域的請(qǐng)求傳遞到單獨(dú)的 Web 服務(wù)器。

出于本指南的目的,我們將 Apache 2.4 與基于 Debian 的系統(tǒng)一起使用。我們還將假設(shè)您想要代理流量的服務(wù)器已經(jīng)可以從您的 Apache 主機(jī)通過網(wǎng)絡(luò)訪問。本文重點(diǎn)介紹基于唯一虛擬主機(jī)啟用代理,但mod_proxy也可全局配置,作為 Apache 服務(wù)器配置的一部分,或通過.htaccess文件在目錄級(jí)別進(jìn)行配置。

啟用代理模塊

mod_proxy包含在默認(rèn)的 Apache 安裝中。現(xiàn)在a2enmod用于激活模塊及其獨(dú)立的 HTTP 組件:

sudo a2enmod proxy
sudo a2enmod proxy_http

這將 Apache 設(shè)置為支持代理到其他主機(jī)的 HTTP 連接。該模塊使用ProxyApache 配置文件中的 -prefixed 指令進(jìn)行配置。我們接下來會(huì)設(shè)置這些。

設(shè)置代理虛擬主機(jī)

讓我們設(shè)置一個(gè)轉(zhuǎn)發(fā)example.com到內(nèi)部 IP 地址的虛擬主機(jī)192.168.0.1。您應(yīng)該example.com將該點(diǎn)的 DNS 記錄添加到您的 Apache 主機(jī)。

在這種情況下,代理允許訪問者通過外部地址透明地訪問您的內(nèi)部 Web 服務(wù)器。Apache 充當(dāng)將流量路由到其最終目的地的看門人。用戶將看到example.com,即使 Apache 實(shí)際上是通過單獨(dú)的服務(wù)器解析請(qǐng)求。

在里面添加一個(gè)新的虛擬主機(jī)文件/etc/apache2/sites-available,內(nèi)容如下:

<VirtualHost *:80>
    ServerName example.com

    ProxyPass / http://192.168.0.1/ nocanon
    ProxyPassReverse / http://192.168.0.1/
</VirtualHost>

在ProxyPass與ProxyPassReverse指令指定的流量example.com應(yīng)該被代理到192.168.0.1??蛇xnocanon關(guān)鍵字指示 Apache 將原始 URL 傳遞給遠(yuǎn)程服務(wù)器。如果沒有這個(gè)關(guān)鍵字,Apache 會(huì)自動(dòng)規(guī)范化 URL,這可能與某些服務(wù)器和框架不兼容。使用nocanon保證兼容性但會(huì)影響您的安全狀況,因?yàn)樗鼤?huì)禁用 Apache 針對(duì)基于 URL 的代理攻擊的內(nèi)置保護(hù)。

ProxyPassReverse必須提供以將您的配置區(qū)分為反向代理設(shè)置。Apache將使用所提供的URL重寫Location,Content-Location和URI由后端發(fā)出的響應(yīng)頭。這確保了后續(xù)請(qǐng)求繼續(xù)命中反向代理,而不是嘗試直接到達(dá)內(nèi)部服務(wù)器。

此配置將代理所有請(qǐng)求。您可以將代理限制到特定路徑,例如/media通過調(diào)整ProxyPass和ProxyPassReverse指令:

ProxyPass /media http://192.168.0.1/
ProxyPassReverse /media http://192.168.0.1/

添加多個(gè)ProxyPass規(guī)則可讓您使用一個(gè)虛擬主機(jī)在多個(gè)目標(biāo)之間路由請(qǐng)求。規(guī)則按照它們編寫的順序進(jìn)行匹配。如果您需要更復(fù)雜的路由行為,請(qǐng)改用該P(yáng)roxyPassMatch指令。這等效于ProxyPass但將傳入的 URL 與正則表達(dá)式匹配:

ProxyPassMatch ^/client/(.*)/images$ http://192.168.0.1/

保存您的虛擬主機(jī)文件并使用a2ensite命令啟用它。這采用相對(duì)于sites-available目錄的文件的基本名稱:

sudo a2ensite example-proxy-vhost

重新啟動(dòng) Apache 以應(yīng)用您的更改:

sudo service apache2 restart

您的簡單代理現(xiàn)在應(yīng)該可以運(yùn)行了。嘗試訪問example.com- 您應(yīng)該會(huì)看到192.168.0.1. 該請(qǐng)求在您的 Apache 主機(jī)處終止,然后將其代理到您的內(nèi)部服務(wù)器。

使用 SSL

上面的示例省略了 SSL。在生產(chǎn)工作負(fù)載中,您希望通過向 虛擬主機(jī)添加SSLCertificateFile和SSLCertificateKeyFile設(shè)置來進(jìn)行設(shè)置。這些指定驗(yàn)證 SSL 連接時(shí)要使用的 SSL 證書和密鑰。您還可以使用 Let’s Encrypt 的certbot 來自動(dòng)設(shè)置。

以這種方式配置 SSL 意味著安全連接將在您的 Apache 主機(jī)上終止。Apache 和您的代理目標(biāo)之間的連接將通過純 HTTP 進(jìn)行。

如果您需要代理連接固定也一樣,你必須使用SSLProxy選項(xiàng)提供mod_ssl。SSLProxyEngine = On將作為最基本的配置工作,前提是 Apache 和您的代理目標(biāo)服務(wù)器都可以訪問相同的證書。此選項(xiàng)指示通過代理連接提供 SSL 信息。

代理選項(xiàng)

Apache 反向代理有幾個(gè)可用于調(diào)整轉(zhuǎn)發(fā)行為的可選指令。以下是一些常用的選項(xiàng):

  • ProxyAddHeaders–默認(rèn)情況下,Apache將X-Forwarded-Host、XForwarded-For和X-Forwarded-Serverheaders傳遞給您的后端服務(wù)器。這些讓您的后端識(shí)別請(qǐng)求是通過 Apache 代理的。設(shè)置此標(biāo)頭以O(shè)ff防止 Apache 添加這些標(biāo)頭。
  • ProxyErrorOverride– Apache 不會(huì)干擾后端服務(wù)器發(fā)送的響應(yīng),除非有指示。如果您的后端提供 400、404、500 或任何其他錯(cuò)誤代碼,用戶將按原樣接收該內(nèi)容。設(shè)置ProxyErrorOverride改變了這一點(diǎn),讓阿帕奇替換錯(cuò)誤頁面的內(nèi)容配置ErrorDocument來代替。在您希望通過集中在代理主機(jī)上的配置統(tǒng)一處理所有后端的錯(cuò)誤的情況下,這可能是可取的。
  • ProxyPassReverseCookieDomain–此功能類似于強(qiáng)制(用于反向代理)ProxyPassReverse指令。它將重寫Set-Cookie標(biāo)頭中的域以引用虛擬主機(jī)的名稱,而不是它們源自的后端服務(wù)器的主機(jī)名。
  • ProxyPreserveHost– Apache通常將其自己的主機(jī)名作為Host標(biāo)頭的值發(fā)送到您的后端服務(wù)器。設(shè)置此指令意味著將發(fā)送原始 Host標(biāo)頭。當(dāng)您的后端軟件執(zhí)行其自己的基于主機(jī)名的路由時(shí),這可能是必要的。
  • ProxyTimeout– 使用此指令來調(diào)整 Apache 在后端服務(wù)器處理代理請(qǐng)求時(shí)等待的時(shí)間。如果超時(shí),Apache將中止請(qǐng)求并向客戶端返回錯(cuò)誤代碼。它默認(rèn)為服務(wù)器級(jí)別的Timeout值。

您可以將這些指令設(shè)置為虛擬主機(jī)文件中的附加行。記住每次應(yīng)用更改時(shí)都要重新啟動(dòng) Apache 服務(wù)。

負(fù)載均衡

Apache 的反向代理實(shí)現(xiàn)還支持多個(gè)不同后端之間的負(fù)載平衡。這允許請(qǐng)求訪問example.com平衡池中的任何服務(wù)器。

<Proxy balancer://example-balancer>
    BalancerMember http://192.168.0.1
    BalancerMember http://192.168.0.2
    ProxySet lbmethod=bytraffic
</Proxy>

ProxyPass / balancer://example-balancer
ProxyPassReverse / balancer://example-balancer

此示例將請(qǐng)求路由到example-balancer池中的兩臺(tái)服務(wù)器之一。的負(fù)載平衡算法是由定義的lbmethod設(shè)置; bytraffic此處使用的值試圖確保每個(gè)服務(wù)器處理相同數(shù)量的流量。

另一種方法 byrequests balancing method是更簡單的 bytraffic 版本,它為每個(gè)后端提供相等的傳入請(qǐng)求份額。該 bybusyness balancer軌道有多少要求每個(gè)后端是服務(wù),然后分配新的到最“忙碌”的后端。

概括

該mod_proxy模塊可以將 Apache 變成一個(gè)反向代理主機(jī),允許您使用基于名稱的路由來訪問多個(gè)獨(dú)立的服務(wù)。您也可以添加負(fù)載平衡,通過在您的服務(wù)器隊(duì)列中分配請(qǐng)求來確保穩(wěn)定性和正常運(yùn)行時(shí)間。

其他代理口味也可用。您可以代理 FTP、WebSocket 和 HTTP2 連接等,方法是在mod_proxy. 完整的模塊列表可在 Apache 文檔中找到。

到此這篇關(guān)于如何使用 Apache 設(shè)置反向代理的文章就介紹到這了,更多相關(guān)Apache 反向代理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解基于Linux的LVM無縫磁盤水平擴(kuò)容

    詳解基于Linux的LVM無縫磁盤水平擴(kuò)容

    這篇文章主要介紹了詳解基于Linux的LVM無縫磁盤水平擴(kuò)容,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • linux下查看yum/rpm/dpkg某軟件是否已安裝的方法

    linux下查看yum/rpm/dpkg某軟件是否已安裝的方法

    這篇文章主要介紹了在linux下查看yum/rpm/dpkg某軟件是否已安裝的方法,文中給出了詳細(xì)的示例代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Ubuntu下圖形化LAMP環(huán)境配置教程(linux)

    Ubuntu下圖形化LAMP環(huán)境配置教程(linux)

    這篇文章主要為大家詳細(xì)介紹了Ubuntu下圖形化LAMP環(huán)境配置,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 你知道一臺(tái)Linux服務(wù)器可以負(fù)載多少個(gè)連接嗎

    你知道一臺(tái)Linux服務(wù)器可以負(fù)載多少個(gè)連接嗎

    這篇文章主要給大家介紹了關(guān)于一臺(tái)Linux服務(wù)器可以負(fù)載多少個(gè)連接的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Linux服務(wù)器具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Ubuntu常見錯(cuò)誤問題的解決方法小結(jié)

    Ubuntu常見錯(cuò)誤問題的解決方法小結(jié)

    最近經(jīng)常使用ubuntu,難免會(huì)遇到各種各樣的問題。所以想著記錄下來,方便自己和大家以后需要的時(shí)候查看參考,文中介紹的很詳細(xì),相信對(duì)大家學(xué)習(xí)或者使用Ubuntu能有一定的參考借鑒價(jià)值,感興趣的朋友們下面來一起看看吧。
    2016-11-11
  • Ubuntu添加swap分區(qū)的方法

    Ubuntu添加swap分區(qū)的方法

    這篇文章主要介紹了Ubuntu添加swap分區(qū)的方法,提高服務(wù)器響應(yīng)速度和防止應(yīng)用程序內(nèi)存不足錯(cuò)誤的最簡單方法之一是添加一些交換空間,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-05-05
  • VMware14.0.0版本虛擬機(jī)安裝Ubuntu16.04 LTS版本Linux系統(tǒng)圖文教程

    VMware14.0.0版本虛擬機(jī)安裝Ubuntu16.04 LTS版本Linux系統(tǒng)圖文教程

    這篇文章主要為大家詳細(xì)介紹了VMware14.0.0版本虛擬機(jī)安裝Ubuntu16.04 LTS版本Linux系統(tǒng)圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Apache NameVirtualHost *:80 has no VirtualHosts問題解決辦法

    Apache NameVirtualHost *:80 has no VirtualHosts問題解決辦法

    這篇文章主要介紹了Apache NameVirtualHost *:80 has no VirtualHosts問題解決辦法,一個(gè)很簡單的配置性錯(cuò)誤,需要的朋友可以參考下
    2014-08-08
  • vscode遠(yuǎn)程開發(fā)使用SSH遠(yuǎn)程連接服務(wù)器的方法「內(nèi)網(wǎng)穿透」

    vscode遠(yuǎn)程開發(fā)使用SSH遠(yuǎn)程連接服務(wù)器的方法「內(nèi)網(wǎng)穿透」

    這篇文章主要介紹了vscode遠(yuǎn)程開發(fā)使用SSH遠(yuǎn)程連接服務(wù)器?「內(nèi)網(wǎng)穿透」,通過本文學(xué)習(xí)我們將通過vscode實(shí)現(xiàn)遠(yuǎn)程開發(fā),并做內(nèi)網(wǎng)穿透實(shí)現(xiàn)在公網(wǎng)環(huán)境下的遠(yuǎn)程連接,在外任意地方也可以遠(yuǎn)程連接服務(wù)器進(jìn)行開發(fā)寫代碼,需要的朋友可以參考下
    2023-02-02
  • 等保測評(píng):Centos超時(shí)退出問題

    等保測評(píng):Centos超時(shí)退出問題

    等保測評(píng)主機(jī)測評(píng)中需要查詢主機(jī)的超時(shí)退出配置,具體在Centos中的話,主要有兩種方式可以實(shí)現(xiàn)超時(shí)退出的功能。文中給大家詳細(xì)介紹,感興趣的朋友跟隨小編一起看看吧
    2019-07-07

最新評(píng)論