2012-01-13 100 views
4

例如有在httpd.conf配置如下:是否可以在ProxyPass/ProxyPassReverse中使用相對路徑?

ProxyPass app http://somehost:someport/App_1 
ProxyPassReverse app http://somehost:someport/App_1 

現在我應該使用絕對URL轉發來自「/ MyApp的」到「/應用程序」的要求:

<Location /myapp > 
    ProxyPass http://localhost:8080/app 
    ProxyPassReverse http://localhost:8080/app 
</Location> 

是否有可能在ProxyPass/ProxyPassReverse中使用相對路徑?

<Location /myapp > 
    ProxyPass /app 
    ProxyPassReverse /app 
</Location> 

回答

2

apache docs about ProxyPass說,目標必須是一個URL。如果你試圖把東西是不是一個URL(如/app),您會收到以下錯誤:

ProxyPass URL must be absolute!

你應該看看mod_rewrite代替。它可以重寫服務器端的請求而不用重定向瀏覽器。給你的/ myapp - > /應用程序的例子,這樣一些簡單的規則就足夠了:

RewriteRule ^/myapp /app [L] 
+0

爲什麼有可能使用平衡器結構? ProxyPass平衡器:// app。或者平衡器:// app - 它是URL? – 2012-01-13 22:28:13

+1

是的,'平衡器:// app'是一個URL。它映射到一堆成員,比如'ajp:// app.domain.com'也是URL。當然,'ftp:// some.host.com/dir'也是一個URL,但它在ProxyPass中不受支持。 – 2012-01-14 00:37:25

+0

ProxyPassMatch怎麼樣? – 2017-06-20 11:44:57

相關問題