日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
如何設(shè)置Nginx和Apach反向代理

反向代理位于web服務(wù)器前面,并在所有請(qǐng)求到達(dá)源服務(wù)器之前接收它們。它的工作方式類似于轉(zhuǎn)發(fā)代理,除了在這種情況下它是使用代理的Web服務(wù)器而不是用戶或客戶端。反向代理通常用于增強(qiáng)Web服務(wù)器的性能、安全性和可靠性。

10多年的瑪多網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整瑪多建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“瑪多網(wǎng)站設(shè)計(jì)”,“瑪多網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

例如,您可以在服務(wù)器上的域名example.com上托管一個(gè)非wordpress站點(diǎn),并在服務(wù)器B上托管的 example.com/blog 上運(yùn)行其WordPress博客。您可以通過(guò)為托管您的主站點(diǎn)的服務(wù)器添加反向代理來(lái)實(shí)現(xiàn)此目的。您可以配置反向代理,將博客的請(qǐng)求重定向到不同的服務(wù)器。

在本文中,您將了解反向代理服務(wù)器的基礎(chǔ)知識(shí)、它們的工作原理、它們的主要優(yōu)點(diǎn)以及如何使用它們來(lái)加速和保護(hù)您的WordPress站點(diǎn)。

什么是反向代理?

要了解什么是反向代理服務(wù)器,您首先需要了解它的作用并熟悉它的所有相關(guān)術(shù)語(yǔ)。

當(dāng)您通過(guò)輸入域名或單擊鏈接正常瀏覽網(wǎng)頁(yè)時(shí),您的瀏覽器/設(shè)備會(huì)直接連接到網(wǎng)站的服務(wù)器并開(kāi)始下載其資源。

通常如何在Internet上瀏覽

如果您想從您訪問(wèn)的網(wǎng)站匿名化您的IP地址,那么您可以使用代理服務(wù)器首先將您的所有請(qǐng)求發(fā)送給它。它會(huì)將您的請(qǐng)求轉(zhuǎn)發(fā)到DNS解析器,然后從其源服務(wù)器下載網(wǎng)站的資源。

之后,它會(huì)將這些資源傳遞給您的設(shè)備。這稱為轉(zhuǎn)發(fā)代理。

轉(zhuǎn)發(fā)代理服務(wù)器的工作原理

您對(duì)網(wǎng)站完全隱藏,因?yàn)樗J(rèn)為您的請(qǐng)求來(lái)自轉(zhuǎn)發(fā)代理。

注:由于一些托管服務(wù)提供商統(tǒng)計(jì)站點(diǎn)訪問(wèn)的方式,他們要求用戶設(shè)置一個(gè)標(biāo)頭以將他們的真實(shí)IP地址通知給源服務(wù)器。因此,隱私利益不適用于諸如此類的特定情況。

除了增強(qiáng)用戶隱私外,轉(zhuǎn)發(fā)代理主要用于繞過(guò)地理內(nèi)容限制。例如,如果您想觀看在您所在地區(qū)被阻止的視頻,您可以使用轉(zhuǎn)發(fā)代理和IP地址,在該IP地址上可以觀看該視頻。

轉(zhuǎn)發(fā)代理的工作方式與虛擬專用網(wǎng) (VPN) 幾乎相同,但它們是具有獨(dú)特用例的不同技術(shù)(盡管它們有時(shí)可能重疊)。

反向代理服務(wù)器與正向代理服務(wù)器

反向代理服務(wù)器充當(dāng)源服務(wù)器的前端,以保持匿名性并增強(qiáng)安全性,就像用戶/客戶端如何使用正向代理來(lái)實(shí)現(xiàn)相同目的一樣。它確保沒(méi)有用戶或客戶端直接與源服務(wù)器通信。

反向代理服務(wù)器的工作原理

正向代理與反向代理之間的區(qū)別很小,但它們的工作方式不同。

兩者可以一起工作,因?yàn)樗鼈兊墓δ苤g沒(méi)有重疊。通常,用戶/客戶端使用正向代理,而源服務(wù)器使用反向代理。

正向代理與反向代理服務(wù)器

由于服務(wù)器管理員可以控制反向代理的工作方式,因此您可以使用它來(lái)啟用許多有用的功能。

我們將在本文后面列出它的所有好處。

為什么使用反向代理?

許多企業(yè),尤其是大型企業(yè),使用定制的網(wǎng)站,這些網(wǎng)站是根據(jù)他們的獨(dú)特需求量身定制的,而不是在WordPress上運(yùn)行。一些例子包括銀行和保險(xiǎn)網(wǎng)站。

在其他情況下,企業(yè)可能會(huì)將他們的網(wǎng)站托管在不允許他們安裝任何外部軟件(例如WordPress)的外部服務(wù)上。通常,這些是使用諸如Shopify等電子商務(wù)平臺(tái)的中小型零售商。

由于WordPress具有強(qiáng)大的CMS功能,許多企業(yè),包括擁有定制網(wǎng)站的大型企業(yè),可能更喜歡使用WordPress托管他們的博客。

解決此問(wèn)題的一種方法是在主網(wǎng)站的子域上安裝WordPress并構(gòu)建導(dǎo)航菜單,以便用戶可以輕松地在主網(wǎng)站和博客之間切換。

由于子域表現(xiàn)為一個(gè)獨(dú)特的域,它會(huì)影響您網(wǎng)站的SEO。盡管Google對(duì)子域和子目錄一視同仁,但如果網(wǎng)站托管在子域中,則優(yōu)化網(wǎng)站的搜索引擎排名要比托管在子目錄中要花費(fèi)更多的精力。

在網(wǎng)站上托管博客的兩種方法

谷歌重申它平等對(duì)待子域和子目錄,但一些SEO專家不同意。即使它不影響網(wǎng)站的SEO,托管在子目錄中的網(wǎng)站也更容易維護(hù)。

這就是為什么您可以使用反向代理將請(qǐng)求重定向到托管在單獨(dú)服務(wù)器上的站點(diǎn)博客。例如,銀行可以在其服務(wù)器上安全地托管其主要網(wǎng)站,但他們也可以在另一家服務(wù)器提供商上單獨(dú)托管其WordPress驅(qū)動(dòng)的博客。

反向代理用例示例

將兩個(gè)不同的站點(diǎn)統(tǒng)一在一個(gè)域名下是使用反向代理的主要優(yōu)勢(shì)之一。它可以幫助品牌保持其網(wǎng)站的組織性、專業(yè)性并保持信譽(yù)。

使用反向代理的好處

除了上述用例之外,反向代理還具有許多其他好處。下面的部分討論了它們的一些主要優(yōu)點(diǎn)。

負(fù)載均衡

單個(gè)源服務(wù)器無(wú)法處理具有數(shù)百萬(wàn)每日唯一訪問(wèn)者的網(wǎng)站的所有傳入流量。在這些情況下,您可以在包含許多服務(wù)器的池中巧妙地分配流量。通常,所有服務(wù)器將托管相同的內(nèi)容以消除單點(diǎn)故障,從而使網(wǎng)站更加可靠。

反向代理是一種很好的設(shè)置方式,因?yàn)樗梢栽趥魅肓髁康竭_(dá)源服務(wù)器之前接收它。如果源服務(wù)器過(guò)載或完全失敗,它可以將流量分配給其他服務(wù)器,而不會(huì)影響站點(diǎn)功能。

反向代理還可以將傳入請(qǐng)求定向到多個(gè)服務(wù)器,每個(gè)服務(wù)器執(zhí)行其優(yōu)化的特定功能。然后反向代理可以收集來(lái)自所有服務(wù)器的響應(yīng)并將它們傳遞給客戶端。

由于我們主要使用大多數(shù)流行的反向代理來(lái)進(jìn)行負(fù)載平衡,因此它們也被稱為負(fù)載平衡器。

全局服務(wù)器負(fù)載平衡 (GSLB)

GSLB是一種高級(jí)負(fù)載平衡方法,用于在世界各地戰(zhàn)略性放置的許多服務(wù)器之間分配網(wǎng)站流量。它通常通過(guò)任播路由技術(shù)完成,其中反向代理根據(jù)客戶端和服務(wù)器之間的最快傳輸時(shí)間選擇服務(wù)器節(jié)點(diǎn)。

GSLB不僅大大提高了站點(diǎn)的可靠性和安全性,還減少了延遲和加載時(shí)間,從而增強(qiáng)了用戶體驗(yàn)。您可以將GSLB與Spoon Feeding等其他網(wǎng)絡(luò)優(yōu)化技術(shù)結(jié)合使用,以進(jìn)一步釋放源服務(wù)器的計(jì)算資源。

盡管您可以在服務(wù)器上手動(dòng)設(shè)置全局服務(wù)器負(fù)載平衡,但通常由Cloudflare和又拍云等專用CDN負(fù)責(zé)。

增強(qiáng)的安全性

反向代理可以掩蓋原始服務(wù)器的IP地址和其他特征。因此,您網(wǎng)站的原始服務(wù)器可以更好地保持其匿名性,從而顯著提高其安全性。

由于反向代理將在到達(dá)主服務(wù)器之前接收所有流量,因此任何攻擊者或黑客都會(huì)發(fā)現(xiàn)很難將您的網(wǎng)站作為DDoS攻擊等安全威脅的目標(biāo)。

您可以使用嚴(yán)格的防火墻來(lái)加強(qiáng)反向代理的安全性,以抵御常見(jiàn)的網(wǎng)絡(luò)攻擊。如果沒(méi)有安裝反向代理,就很難刪除惡意軟件或開(kāi)始刪除。

像HAProxy這樣的反向代理可以將基本的HTTP訪問(wèn)身份驗(yàn)證添加到?jīng)]有啟用它的 Web 服務(wù)器。您還可以使用反向代理為各種類型的請(qǐng)求添加集中式身份驗(yàn)證。

強(qiáng)大的緩存

您可以通過(guò)緩存靜態(tài)和動(dòng)態(tài)內(nèi)容來(lái)使用反向代理來(lái)實(shí)現(xiàn)Web加速。這可以減少源服務(wù)器上的負(fù)載,從而使網(wǎng)站更快。

例如,如果您的源服務(wù)器在美國(guó),并且來(lái)自歐洲的用戶訪問(wèn)您的網(wǎng)站,那么您可以從歐洲的反向代理服務(wù)器提供您網(wǎng)站的緩存版本。由于反向代理比原始服務(wù)器更接近用戶,因此網(wǎng)站加載時(shí)間會(huì)更短,從而使其表現(xiàn)出色。

Varnish和Nginx FastCGI是用于緩存Web內(nèi)容的反向代理的突出示例。

卓越的壓縮

服務(wù)器響應(yīng)會(huì)占用大量帶寬。在將它們發(fā)送到客戶端之前壓縮服務(wù)器響應(yīng)(例如使用gzip)可以減少所需的帶寬量,從而加快網(wǎng)絡(luò)上的服務(wù)器響應(yīng)。

反向代理非常適合壓縮服務(wù)器響應(yīng),因?yàn)樗挥谠捶?wù)器和客戶端之間。

優(yōu)化的SSL加密

為每個(gè)客戶端加密和解密SSL/TLS請(qǐng)求對(duì)于源服務(wù)器來(lái)說(shuō)可能是非常繁重的。反向代理可以承擔(dān)此任務(wù)以釋放源服務(wù)器的資源用于其他重要任務(wù),例如提供內(nèi)容。

offload SSL/TSL加密和解密的另一個(gè)優(yōu)點(diǎn)是減少地理上遠(yuǎn)離源服務(wù)器的客戶端的延遲。

您還可以選擇具有專用SSL/TLS加速硬件的反向代理來(lái)進(jìn)一步優(yōu)化此任務(wù)。這種反向代理稱為SSL/TLS終止代理。Varnish等一些服務(wù)器不支持SSL/TSL協(xié)議,因此SSL/TSL終止反向代理可以幫助保護(hù)通過(guò)它們的流量。

更好的A/B測(cè)試

大多數(shù)A/B測(cè)試工具都要求您使用外部JavaScript庫(kù)來(lái)加載它們的功能。但是,加載第三方腳本會(huì)減慢您的頁(yè)面加載時(shí)間,并給用戶帶來(lái)不穩(wěn)定的體驗(yàn)。

相反,您可以使用反向代理在服務(wù)器級(jí)別本身創(chuàng)建兩個(gè)單獨(dú)的流。例如,您可以使用Nginx的split_clientssticky route方法來(lái)控制流量重定向。

您可以參考Nginx和freeCodeCamp的教程,了解更多關(guān)于使用反向代理執(zhí)行A/B測(cè)試的信息。

監(jiān)控和記錄流量

反向代理捕獲通過(guò)它的任何請(qǐng)求。因此,您可以將它們用作監(jiān)控和記錄流量的中心樞紐。即使您使用多個(gè)Web服務(wù)器來(lái)托管您網(wǎng)站的所有組件,使用反向代理也可以更輕松地監(jiān)控您網(wǎng)站的所有傳入和傳出數(shù)據(jù)。

最受歡迎的反向代理

根據(jù)W3Techs的說(shuō)法,幾乎83%的網(wǎng)站不使用他們監(jiān)控的反向代理服務(wù)。

網(wǎng)站使用的反向代理統(tǒng)計(jì)(來(lái)源:W3Techs.com)

在使用反向代理(如上所列)的17%網(wǎng)站中,您會(huì)注意到其中大多數(shù)是CDN。這是因?yàn)榇蠖鄶?shù)反向代理默認(rèn)隱藏它們的存在以作為安全預(yù)防措施。因此,您不能依賴像W3Techs這樣的網(wǎng)站監(jiān)控服務(wù)來(lái)查找哪些反向代理是最受歡迎的。

根據(jù)我們的研究和經(jīng)驗(yàn),當(dāng)今最流行的反向代理是:

Nginx

Nginx是一個(gè)開(kāi)源的Web服務(wù)器,也可以作為反向代理。除了用于托管網(wǎng)站外,它還是使用最廣泛的反向代理和負(fù)載平衡解決方案之一。根據(jù)Netcraft的數(shù)據(jù),2019年12月有超過(guò)4.79 億臺(tái)網(wǎng)絡(luò)服務(wù)器在使用Nginx,使其成為網(wǎng)絡(luò)服務(wù)器市場(chǎng)份額的領(lǐng)導(dǎo)者。

所有站點(diǎn)的Web服務(wù)器市場(chǎng)份額(來(lái)源:Netcraft)

Nginx提供了上面討論的所有反向代理優(yōu)勢(shì),以及更多。它提高了Web性能、安全性、可靠性和可擴(kuò)展性。你可以使用它的配置文件來(lái)配置Nginx,它也是可熱重載的。

但您也可以使用商業(yè)產(chǎn)品Nginx Plus來(lái)訪問(wèn)基于API的配置選項(xiàng)和其他適用于大型企業(yè)網(wǎng)站的功能。

Nginx在其參與的每個(gè)類別中都在Review Signal的頂級(jí)網(wǎng)絡(luò)托管狀態(tài)中名列前茅。使用Nginx的其他一些主要公司是MaxCDN、Cloudflare和Netflix。

將Nginx設(shè)置為基本的反向代理很簡(jiǎn)單。Nginx還為您提供各種指令來(lái)根據(jù)您的要求自定義服務(wù)器的反向代理。我們將在后面的部分討論如何做到這一點(diǎn)。

Varnish

Varnish是一個(gè)帶有內(nèi)置緩存引擎的開(kāi)源HTTP反向代理。它主要設(shè)計(jì)用于提供動(dòng)態(tài)內(nèi)容的高流量網(wǎng)站。您還可以將Varnish用作負(fù)載均衡器、Web應(yīng)用防火墻 (WAF)以及邊緣身份驗(yàn)證和授權(quán)服務(wù)器。

它適用于所有現(xiàn)代版本的Linux和FreeBSD,主要用作Nginx或Apache Web服務(wù)器的前端。Varnish強(qiáng)大且高度靈活的Varnish配置語(yǔ)言 (VCL)允許您定義各種功能,例如處理HTTP請(qǐng)求、緩存以及連接到一個(gè)或多個(gè)Web服務(wù)器。

出于這個(gè)原因,許多CDN使用Varnish作為快速交付內(nèi)容的主要基礎(chǔ)。

Varnish還支持Edge Side Includes (ESI),這是一種幫助您在其他網(wǎng)頁(yè)中重用一個(gè)網(wǎng)頁(yè)的部分的語(yǔ)言。如果您的網(wǎng)站在不同頁(yè)面中使用大量重復(fù)內(nèi)容,ESI可以通過(guò)緩存常用部分來(lái)幫助您加快網(wǎng)站的頁(yè)面加載時(shí)間。

您可以使用Varnish的各種模塊 (VMOD)來(lái)擴(kuò)展Varnish 。前往Varnish的官方教程,了解如何將Varnish設(shè)置為WordPress的反向代理。

Apache Traffic Server

Apache Traffic Server是一個(gè)開(kāi)源緩存代理服務(wù)器。它因其快速、可擴(kuò)展的特性而廣受歡迎。它是雅虎開(kāi)發(fā)的商業(yè)產(chǎn)品!很久以前,但他們將其開(kāi)源并將其捐贈(zèng)給Apache基金會(huì)進(jìn)行維護(hù)。

Comcast、Akamai、LinkedIn、Yahoo和Apple等幾個(gè)主要的內(nèi)容網(wǎng)絡(luò)和CDN都使用Apache Traffic Server來(lái)支持他們的技術(shù)。

您還可以使用Apache HTTP Server ( Apache httpd ),一個(gè)HTTP服務(wù)器守護(hù)程序,在您的Web服務(wù)器上設(shè)置反向代理。除了充當(dāng)基本的Web服務(wù)器外,它還可以幫助您為用戶提供靜態(tài)和動(dòng)態(tài)內(nèi)容。您將在本文后面學(xué)習(xí)如何將Apache設(shè)置為反向代理。

HAProxy

HAProxy是一個(gè)開(kāi)源的反向代理和負(fù)載均衡器。它旨在與大多數(shù)現(xiàn)有Web服務(wù)器架構(gòu)集成,包括Linux發(fā)行版和云平臺(tái)。與Nginx類似,HAProxy使用事件驅(qū)動(dòng)的I/O模型,并支持跨多個(gè)工作進(jìn)程拆分請(qǐng)求。

對(duì)于HTTP請(qǐng)求,HAProxy即使在高負(fù)載下也表現(xiàn)得非常好。互聯(lián)網(wǎng)上一些流量最高的網(wǎng)站,例如Airbnb、Reddit、Instagram、Stack Overflow、Tumblr、GitHub和Imgur,都使用HAProxy來(lái)有效地交付他們的網(wǎng)站。

討論如何實(shí)現(xiàn)HAProxy超出了本文的范圍,但您可以參考他們的文檔以了解其工作原理。

注意: Traefik和Envoy是HAProxy的另外兩個(gè)開(kāi)源替代品。它們既是高性能反向代理,又是具有許多高級(jí)功能的負(fù)載平衡器。

其他一些流行的反向代理是AWS Elastic Load Balancer、GLBC、DigitalOcean Load Balancer和Google Cloud Load Balancer。有關(guān)當(dāng)今使用的頂級(jí)反向代理和負(fù)載均衡器的詳盡列表,您可以查看Stackshare.io。

反向代理:WordPress網(wǎng)站的用例

為WordPress網(wǎng)站使用反向代理主要有三個(gè)用例。

加載“主站點(diǎn)”與“代理站點(diǎn)”

我們將僅在此示例中使用Nginx,因?yàn)樗钱?dāng)今用于WordPress網(wǎng)站的最流行的反向代理。但同樣的基本原則也適用于其他反向代理。

反向代理通常難以安裝、配置和支持。

1. 托管在同一臺(tái)服務(wù)器上的主站點(diǎn)和代理站點(diǎn)

如果主站點(diǎn)和代理站點(diǎn)都托管在同一臺(tái)服務(wù)器上,則主站點(diǎn)可以在WordPress安裝上運(yùn)行,而單獨(dú)的WordPress安裝為代理站點(diǎn)提供動(dòng)力。

由于您可以訪問(wèn)站點(diǎn)及其共享Web服務(wù)器,因此您可以為主站點(diǎn)設(shè)置反向代理規(guī)則,然后將代理站點(diǎn)配置為從反向代理加載。

以下是用于通過(guò)反向代理加載子目錄站點(diǎn)的標(biāo)準(zhǔn)Nginx反向代理指令:

location ^~ /subfolder/ {
proxy_pass http://subfolder.domain.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

在上面的代碼中,您需要將/subfolder/占位符替換為實(shí)際的子目錄名稱(例如/blog//shop/)。此外,http://subfolder.domain.com子域應(yīng)與用于將反向代理指向代理站點(diǎn)的URL匹配。

location指令包括插入符號(hào)和波浪號(hào) ( ^~ ) 來(lái)告訴Nginx,如果它找到定義的字符串,它應(yīng)該停止搜索進(jìn)一步的匹配并使用此處列出的指令。在其文檔中了解有關(guān)Nginx反向代理指令的更多信息。接下來(lái),您需要配置代理站點(diǎn)以通過(guò)反向代理加載。以下是配置代理站點(diǎn)所遵循的標(biāo)準(zhǔn)步驟:

  • 在加載代理站點(diǎn)的路徑上創(chuàng)建一個(gè)子目錄。所有代理網(wǎng)站的文件都移動(dòng)到此子目錄。
  • 更新Web服務(wù)器的配置文件以將新子目錄定義為代理站點(diǎn)的根目錄。此外,您需要添加重寫(xiě)規(guī)則以從每個(gè)傳入請(qǐng)求的請(qǐng)求URI中刪除子目錄。
  • 更新代理站點(diǎn)數(shù)據(jù)庫(kù)中的所有URL以匹配實(shí)時(shí)站點(diǎn)URL(例如example.com/blog)。
  • 使用定義編輯代理站點(diǎn)的wp-config.php文件,$_SERVER['HTTP_HOST']將其指向主站點(diǎn)的URL。
  • 如果您使用的是SSL證書(shū),那么您需要在wp-config.php文件中定義嚴(yán)格的規(guī)則以避免重定向循環(huán)。

注意:代理站點(diǎn)不能創(chuàng)建與代理站點(diǎn)加載所在的同一子目錄重復(fù)的URL。例如,代理站點(diǎn)example.com/blog無(wú)法在example.com/blog/blog.

2. 僅托管在您的服務(wù)器上的代理站點(diǎn)

如果您只能訪問(wèn)代理站點(diǎn)及其Web服務(wù)器,那么您需要聯(lián)系主站點(diǎn)的服務(wù)器管理員并要求他們?yōu)槟O(shè)置反向代理規(guī)則。

為此,您必須遵循上述相同的步驟,但在這種情況下,您必須在兩個(gè)不同的服務(wù)器上配置規(guī)則。

要托管您的代理站點(diǎn),請(qǐng)向該站點(diǎn)添加一個(gè)指向反向代理的域。通常,子域適合此目的(例如blog.example.com)通過(guò)子目錄鏈接(例如)加載代理站點(diǎn)example.com/blog

設(shè)置代理站點(diǎn)后,您可以聯(lián)系服務(wù)器支持團(tuán)隊(duì)(DIY主機(jī)則需要自己動(dòng)手)以配置代理站點(diǎn)以通過(guò)反向代理加載。此時(shí),我們的支持團(tuán)隊(duì)將需要您服務(wù)器的真實(shí) IP,以便以正確計(jì)算訪問(wèn)次數(shù)的方式完成設(shè)置過(guò)程。如果由于某些提供商(例如 AWS CloudFront)的動(dòng)態(tài)IP限制而無(wú)法提供靜態(tài)IP,您的計(jì)劃將改為轉(zhuǎn)換為基于帶寬的類似計(jì)劃。

3. 僅托管在您的服務(wù)器上的主站點(diǎn)

如果您只能訪問(wèn)主站點(diǎn)及其Web服務(wù)器,則應(yīng)設(shè)置反向代理并配置其規(guī)則以從外部主機(jī)加載代理站點(diǎn)。安裝和配置代理站點(diǎn)以通過(guò)反向代理加載是輔助服務(wù)器管理員的責(zé)任。

DIY主機(jī)可以添加本文前面列出的標(biāo)準(zhǔn)反向代理規(guī)則。如果需要,您還可以將任何其他自定義添加到這些規(guī)則中。

在這種情況下,您完全負(fù)責(zé)配置代理站點(diǎn)以通過(guò)反向代理正確加載它。

如何將Nginx設(shè)置為反向代理

如果您的是DIY服務(wù)器,那么您必須自己設(shè)置反向代理并將其配置為指向代理站點(diǎn)。

根據(jù)您的Web服務(wù)器的操作系統(tǒng),您可以以不同的方式安裝Nginx。對(duì)于Linux發(fā)行版,您可以根據(jù)您的Linux發(fā)行版的版本使用各種Nginx包。

在下面的示例中,我們將主站點(diǎn)安裝在example.com域名中,而代理WordPress站點(diǎn)安裝在blog.domain.com子域中。它們都由運(yùn)行在Ubuntu 18.04上的Web服務(wù)器上的Apache提供支持。我們將在主服務(wù)器上安裝和配置Nginx作為反向代理。

首先,通過(guò)SSH訪問(wèn)服務(wù)器的終端。然后使用該apt-get命令更新您的發(fā)行版的軟件包列表并在您的Web服務(wù)器上安裝Nginx。

sudo apt update
sudo apt install nginx

接下來(lái),您需要將Nginx配置為代理Apache上托管的域的請(qǐng)求。為此,請(qǐng)創(chuàng)建一個(gè)新的虛擬主機(jī)文件。在這里,我使用nano編輯器添加代碼,但您可以使用您選擇的任何代碼編輯器。

sudo nano /etc/nginx/sites-available/example.com.conf

然后通過(guò)添加以下server {...}location塊來(lái)設(shè)置Nginx指令以將請(qǐng)求轉(zhuǎn)發(fā)到Apache:

server {
listen      80;
server_name example.com www.example.com;
index       index.php;
root        /var/www/example.com/public    # fallback for index.php
location / {
try_files $uri $uri/ /index.php?$query_string;
}location /blog {
proxy_pass http://blog.domain.com;proxy_http_version                 1.1;
proxy_cache_bypass                 $http_upgrade;
# Proxy headers
proxy_set_header Upgrade           $http_upgrade;
proxy_set_header Connection        "upgrade";
proxy_set_header Host              $host;
proxy_set_header X-Real-IP         $remote_addr;
proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host  $host;
proxy_set_header X-Forwarded-Port  $server_port;
# Proxy timeouts
proxy_connect_timeout              60s;
proxy_send_timeout                 60s;
proxy_read_timeout                 60s;
}

在上面的代碼中,我定義了一個(gè)example.com/blog由Apache服務(wù)器提供的子目錄鏈接。確保在proxy_pass指令中使用代理網(wǎng)站的公共IP地址(或URL)。就我而言,我的代理網(wǎng)站托管在blog.domain.com子域上。

注意:在進(jìn)行任何更改之前,請(qǐng)確保代理網(wǎng)站已安裝并準(zhǔn)備好提供服務(wù)。

您可以在Nginx的詳細(xì)指令索引中了解有關(guān)此處使用的所有反向代理指令的更多信息。

保存虛擬主機(jī)文件。然后通過(guò)在/etc/nginx/sites-available/etc/nginx/sites-enabled目錄中創(chuàng)建example.com.conf文件符號(hào)鏈接來(lái)激活新的虛擬主機(jī)。

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

之后,測(cè)試Nginx是否有任何配置錯(cuò)誤。

sudo nginx -t

如果沒(méi)有錯(cuò)誤,請(qǐng)重新加載Nginx以強(qiáng)制執(zhí)行更改。

sudo systemctl reload nginx

您現(xiàn)在已經(jīng)成功地將Nginx設(shè)置為反向代理。為了確認(rèn)這一點(diǎn),您可以使用phpinfo()函數(shù)來(lái)檢查您訪問(wèn)代理站點(diǎn)時(shí)加載的PHP變量。

SERVER_SOFTWAREDOCUMENT_ROOTPHP變量下,您將看到Apache在后端為該域提供服務(wù)。但是PHP變量證實(shí)Nginx被用作反向代理來(lái)轉(zhuǎn)發(fā)請(qǐng)求。但PHP變量的HTTP_X_REAL_IPHTTP_X_FORWARDED_FOR證實(shí),Nginx被用作轉(zhuǎn)發(fā)請(qǐng)求的反向代理。

您可以使用fastcgi_cache和ngx_cache_purge模塊加快通過(guò)Nginx為WordPress站點(diǎn)提供服務(wù)的速度。第一個(gè)模塊將緩存您的站點(diǎn),而第二個(gè)模塊將根據(jù)特定事件(例如發(fā)布或編輯WordPress帖子/頁(yè)面)自動(dòng)清除緩存。

您可以使用WordPress插件Nginx Cache Controller直接從您的WordPress管理儀表盤(pán)控制Nginx的代理服務(wù)器緩存。如果您使用的是WordPress多站點(diǎn)安裝,那么您可以使用Nginx Helper插件來(lái)執(zhí)行相同的操作。

查看Nginx的主要文檔和Nginx WordPress設(shè)置指南,詳細(xì)了解如何使用Nginx和WordPress。

如何將Apache設(shè)置為反向代理

在開(kāi)始之前,請(qǐng)確保您有兩個(gè)網(wǎng)站在和example.com運(yùn)行blog.domain.com。第一個(gè)網(wǎng)站可能是也可能不是WordPress網(wǎng)站,但第二個(gè)網(wǎng)站應(yīng)該是WordPress網(wǎng)站,因?yàn)樗饕糜谠?code>example.com/blog子目錄鏈接處加載根域的博客。

通過(guò)SSH打開(kāi)服務(wù)器的終端并啟用Apache的代理模塊,開(kāi)始配置Apache。

sudo a2enmod proxy proxy_http ssl

運(yùn)行上述命令很可能會(huì)重新啟動(dòng)Apache以重新加載新定義的指令。

接下來(lái),編輯主服務(wù)器的虛擬主機(jī)文件以創(chuàng)建反向代理。這是您需要添加的代碼:


DocumentRoot /var/www/app/public
SSLProxyEngine On    ProxyRequests off
ProxyPass /blog http://blog.domain.com
ProxyPassReverse /blog  http://blog.domain.com

ProxyPass指令將為指定的路徑創(chuàng)建一個(gè)反向代理,而ProxyPassReverse指令將攔截通過(guò)該反向代理發(fā)送的HTTP響應(yīng)標(biāo)頭并重寫(xiě)它們以匹配Apache服務(wù)器。

保存文件后,您需要wp-config.php通過(guò)在要求您停止編輯的行之前添加以下代碼來(lái)編輯文件。

# ProxyPass Settings
# overrides the variables below to ensure that any
# request to /blog/* subdirectory is taken care of properly
$_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI'];
$_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME'];
$_SERVER['PHP_SELF'] = '/blog' . $_SERVER['PHP_SELF'];

最后,您需要更新WordPress站點(diǎn)的數(shù)據(jù)庫(kù)以添加子目錄鏈接/blog的配置值。您可以通過(guò)運(yùn)行以下SQL查詢來(lái)做到這一點(diǎn):

UPDATE wp_options SET option_value = 'https://www.example.com/blog' WHERE option_name IN( 'siteurl', 'home' );

您現(xiàn)在應(yīng)該能夠訪問(wèn)https://www.example.com/blog鏈接并將您的WordPress站點(diǎn)托管在http://blog.domain.com子域負(fù)載上,而無(wú)需更改其URL。您可以像往常一樣繼續(xù)使用WordPress來(lái)瀏覽、編寫(xiě)、編輯和管理您的網(wǎng)站。

反向代理的限制

  • 反向代理會(huì)帶來(lái)重大的安全風(fēng)險(xiǎn),因?yàn)樗梢宰x取和更改通過(guò)它的所有流量。如果您通過(guò)反向代理傳遞HTTPS流量,那么它需要對(duì)傳遞的數(shù)據(jù)進(jìn)行解密和重新加密。這意味著它必須擁有SSL/TLS證書(shū)的私鑰。因此,如果任何惡意方可以破壞您的反向代理,他們可以記錄密碼并將惡意軟件注入您的網(wǎng)站。
  • 如果您或您的用戶無(wú)法直接訪問(wèn)您的主服務(wù)器,那么使用反向代理可能會(huì)導(dǎo)致單點(diǎn)故障。例如,如果您使用反向代理作為前端來(lái)服務(wù)多個(gè)域,那么它的中斷可能會(huì)導(dǎo)致所有域同時(shí)脫機(jī)。
  • 如果您依賴第三方反向代理(例如Cloudflare),那么您就是在將您網(wǎng)站的敏感信息交給他們。雖然他們是值得信賴的,但您無(wú)法預(yù)測(cè)它可能會(huì)導(dǎo)致什么。
  • 在通過(guò)反向代理加載的網(wǎng)站上恢復(fù)備份或推送臨時(shí)站點(diǎn)可能會(huì)導(dǎo)致代理站點(diǎn)停止正確加載。
  • 由于多種因素,通過(guò)反向代理加載WordPress多站點(diǎn)安裝可能很復(fù)雜且難以維護(hù)。您可以使用獨(dú)立的WordPress子目錄多站點(diǎn)安裝作為代理站點(diǎn)的替代方案。

在CDN和反向代理之間進(jìn)行選擇

CDN是一種高級(jí)形式的反向代理,大部分配置和維護(hù)由第三方負(fù)責(zé)。它們可以為您的WordPress網(wǎng)站提供驚人的性能優(yōu)勢(shì),而您只需付出很小的努力。

CDN不僅可以緩存內(nèi)容并將其快速提供給用戶,還可以減少源服務(wù)器上的負(fù)載、降低帶寬成本、提供額外的安全層、提高網(wǎng)站的SEO并幫助您更好地?cái)U(kuò)展網(wǎng)站。

您會(huì)注意到CDN提供的大部分優(yōu)勢(shì)與反向代理提供的優(yōu)勢(shì)相同。那么,您應(yīng)該選擇CDN而不是反向代理,反之亦然?

沒(méi)有理由你必須只接受一個(gè)。如果您已經(jīng)安裝了反向代理,您仍然會(huì)看到使用CDN的速度和性能提升。它們的緩存層都很好,如果您有任何獨(dú)特的請(qǐng)求處理需求(例如動(dòng)態(tài)內(nèi)容、電子商務(wù)),那么您可以使用CDN或反向代理傳遞的一些自定義標(biāo)頭輕松配置它。

小結(jié)

WordPress非常靈活。您可以將它用作博客、電子商務(wù)站點(diǎn),甚至是學(xué)習(xí)管理系統(tǒng)。在大多數(shù)情況下,您可以自定義WordPress以滿足您的獨(dú)特需求。

但是,有時(shí)您可能必須使用單獨(dú)的域或輔助服務(wù)器來(lái)托管其他站點(diǎn)。如前所述,這可能是因?yàn)榇笮推髽I(yè)網(wǎng)站使用了不同的技術(shù)堆棧,或者為預(yù)先存在的非WordPress網(wǎng)站啟動(dòng)了WordPress博客。

反向代理可以在這兩種情況下提供幫助,幫助您充分利用WordPress,而無(wú)需放棄主網(wǎng)站并重新開(kāi)始。


網(wǎng)頁(yè)題目:如何設(shè)置Nginx和Apach反向代理
網(wǎng)址分享:http://www.dlmjj.cn/article/copscdd.html