Apache-2.2

Apache:將特定 URL 重定向到不同埠上的本地伺服器

  • November 26, 2018

這看起來很簡單,但我無法讓它工作。

我有一個非常簡單的網路伺服器,只需要做兩件事:

  1. example.com/status.html 返回一個本地文件(這有效)
  2. example.com/atom 重定向執行在同一台機器上 4000 埠的防火牆伺服器的內容

這沒有用:

RewriteRule ^$ http://localhost:4000

從請求者的角度來看(即在客戶端的機器上),這會將流量重定向回 l​​ocalhost:4000。

我對 VirtualHost 的有限理解表明這是針對 atom.example.com 之類的,而不是 example.com/atom

我想我必須使用 ProxyReverse,但我找不到合適的組合。

更新:嘗試 Shane Madden 給出的 ProxyPass/ProxyReverse 建議會在錯誤日誌文件中生成:

[Thu Mar 15 11:59:15 2012] [error] (13)Permission denied: proxy: HTTP: attempt to connect to 127.0.0.1:4000 (localhost) failed
[Thu Mar 15 11:59:15 2012] [error] ap_proxy_connect_backend disabling worker for (localhost)
[Thu Mar 15 11:59:17 2012] [error] proxy: HTTP: disabled connection for (localhost)

(本地伺服器肯定在 127.0.0.1:4000 上執行)

除非你有理由這樣做,否則不要使用 mod_rewrite。

試試這個(把它放在<VirtualHost>塊中):

ProxyPass /atom http://127.0.0.1:4000/atom
ProxyPassReverse /atom http://127.0.0.1:4000/atom

引用自:https://serverfault.com/questions/369866