[英]Apache Rewrite or proxy
我的機器(端口80)上運行着Apache服務器我的機器(端口8080)上運行着Zope服務器
我希望所有用戶,無論域如何(現在都使用www.example.com)都無縫地推送到zope實例
IE(如果我在瀏覽器中輸入http://www.example.com/mysite)
它將顯示http://www.example.com:8080/mysite的效果
但
我希望URL仍說http://www.example.com/mysite
(sub)域應該無關緊要,因為將有2個或3個域指向同一台服務器
我應該看一下mod_rewrite或mod_proxy嗎?
我有一半的mod_rewrite工作,但是它改變了瀏覽器的功能嗎?
目前正在嘗試
RewriteEngine on
RewriteRule ^($|/.*) http://localhost:8080/$1 [P]
但是獲得服務器500
使用“ http:// localhost / mysite”進行連接
您可以使用帶有P
(代理)規則的mod_rewrite
或使用mod_proxy
來執行所需的操作。 使用mod_rewrite
您的配置將如下所示:
RewriteRule ^/mysite/(.*) http://www.example.com:8080/mysite/$1 [P]
使用mod_proxy
,您的配置如下所示:
<Location /mysite/>
ProxyPass http://www.example.com:8080/
ProxyPassReverse http://www.example.com:8080/
</Location>
兩者都完成大致相同的事情。 結合使用Location
塊和ProxyPass
,可以輕松地將其他配置指令應用於前端服務器上的此路徑。
Zope使用路徑中的VirtualHostMonster
標志,通過一些特殊的重寫來立即支持您的方案。 這樣可以確保Zope(以及擴展名Plone)生成的所有URL對於代理請求也是正確的。
你應該同時使用mod_rewrite
和mod_proxy
,他們會在演唱會的工作。
為了使創建正確的重寫URL更容易,有人構建了出色的RewriteRule Witch 。 插入您的特定示例輸出:
RewriteRule ^/mysite($|/.*) \
http://127.0.0.1:8080/VirtualHostBase/\
http/%{SERVER_NAME}:80/mysite/VirtualHostRoot/_vh_mysite$1 [L,P]
因此,對於任何以http://www.example.com/mysite
為根的URL, http://www.example.com/mysite
重寫它們以從在localhost端口8080上運行的服務器提供服務,並確保Zope生成具有相同根的URL。
有關更多詳細信息,請參見Zope Wiki 上有關VirtualHostMonster功能的詳細文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.