簡體   English   中英

Apache代理與PHP代理

[英]Apache Proxy vs PHP Proxy

假設我在內部服務器上有一個后端應用程序。 假設我有另一個運行Apache和PHP的網絡服務器,該服務器必須代理第一個應用程序。

一方面,我可以將ProxyPass與Apache配合使用:

ProxyPass / http://myhiddenserver.com/ 

另一方面,我可以使用libcurl做一個簡單的PHP腳本來實現相同的代理行為。

curl_exec( $ch );

與第一種選擇相比,第二種選擇有何缺點? 我對PHP scrip t 是否可能引入瓶頸或兩種解決方案是否等效感到興趣

我說的是高負載下的服務器。 盡管顯然使用Apache是​​很簡單的,但是如果我想在代理之前進行條件操作(例如特定的緩存),PHP將給我很大的自由度。

謝謝!

如果將PHP用於代理請求,則Web服務器也將參與其中,根據此方法,僅使用Web服務器會更好。
但是,如果要在流程中添加一些自定義邏輯,則最好使用PHP。 無論如何,這些解決方案是不等效的。

另外,您應該查看Nginx的代理,它可能是更有效的解決方案:
https://serverfault.com/questions/143238/nginx-vs-apache-as-reverse-proxy-which-one-to-choose

Apache位於PHP應用程序的前面。 Apache總是會收到Web請求。 因此,真正的問題是,PHP是否還會收到Apache可以自己處理的Web請求,還是應該將PHP引入其中?

如果請求永遠不會到達PHP應用程序,則您的響應時間將更快,因為所涉及的代碼集少了1組(可能只有幾毫秒,但有時幾毫秒也很重要)。 從長遠來看,僅讓Apache完成這項工作對您來說會更便宜,因為如果您擁有PHP,那么這比需要盡快升級PHP服務器更近一步。 Web應用程序(在這種情況下為PHP)具有可以處理的最大同時請求數,因為它們已將整個框架(也許您正在使用Laravel)加載到RAM中,並且同時請求需要更多的CPU能力。 因此,例如,如果您的PHP服務器可以一次處理50個請求,因為這正是您的硬件所具有的能力,那么,如果您使PHP成為代理服務器,那么您就用光了相當多的可用請求。 Apache將一直等到您有一個免費的PHP工作人員來滿足該請求,但這對於整個使用您的PHP應用程序的用戶來說意味着較慢的響應。

可以通過基准測試和負載測試來衡量差異有多大。 您可能會發現它可以忽略不計。 也許此代理功能將非常不用。 但是,如果您具有僅配置Apache來完成工作的能力,並且Apache可以滿足您的所有需求,那么我將讓Apache來完成。

如果有人擁有精通PHP而不是Apache的團隊,則有些人可能更喜歡用PHP進行操作,因為用PHP進行操作使他們更易於管理。

最后,這是一個意見問題。

但是具體的建議是,如果您可以在Apache中進行操作並且對在Apache(而不是PHP)中進行管理感到滿意,那么您就需要減少PHP服務器的升級時間,這意味着它對您來說更便宜,並且速度會更快。響應時間。 (多少取決於響應時間,Web流量和其他因素。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM