Rewrite
是否可以在保留域名的同時將子目錄重定向到另一台伺服器
我們在域下有一個工作網站
x.domain.tld
。我們想以我們擁有的方式向它添加一個 wordpress,x.domain.tld/blog
但將它安裝在另一台伺服器上,這樣我們就不會在這個舊的(但工作的)伺服器上碰任何東西。那麼我可以啟動一個新伺服器,在其上安裝 wordpress,在 x.domain.tld/blog 上進行 apache 重定向以重定向到新伺服器 IP,同時將域名保留在客戶端的 url 中嗎?
這對我來說似乎不可行。而且我們不願意將整個舊應用程序遷移到新伺服器。還有另一種方法嗎?
感謝您的幫助
這是反向代理的一個完全有效的案例。我連結到 Nginx 網站進行解釋,因為 Nginx 非常擅長反向代理,但 Apache 與
mod_proxy
andmod_proxy_http
也可以完美地工作。這裡有很多關於這個主題的高質量答案的問題;@HermanB 連結了其中一個,但我建議您也搜尋其他人。
基本上,只需在 VirtualHost 中執行以下操作即可完成此任務:
<VirtualHost *:80> ServerName x.domain.tld ... ProxyPass /blog/ http://blog.domain.tld/blog/ ProxyPassReverse /blog/ http://blog.domain.tld/blog/ </VirtualHost>
除了“主站點”之外,還可以應用這樣的配置,即不在
/blog/
URI 下的所有內容都將像以前一樣提供服務,就好像沒有代理指令一樣。從配置片段中可以明顯看出,部落格本身必須安裝到 Web 伺服器
blog.domain.tld
,以便在路徑下可用blog
。我強烈推薦這種方法,它不能被rebase(即/blog/
必須在兩個伺服器上使用相同的URI base);通過這種方式,您將輕鬆規避一些難以解決的問題,這些問題源於反向代理通常不會重寫代理數據中的 URL。並確保您的應用程序 (Wordpress) 僅使用相對URI 生成所有內部連結。