Proxy
具有特定字元串的 Apache 代理重定向 URL
我有一台執行 2 個應用程序的伺服器。我正在使用公共 IP 地址,如果出現特定文本,我想以某種方式解析 url,呼叫將重定向到特定埠。在我的情況下,我希望如果 url 包含:
- /myapp1/a1 -> 埠 82
- /myapp2/a2 -> 埠 81
範例:假設我的公共 ip 是 publ,我的私人 ip 是 priv,以下 URL 應該由伺服器以這種方式解析:
http://publ/myapp1/a1/something -> http://priv:82/myapp1/a1/something http://publ/myapp2/a2/something -> http://priv:81/myapp2/a2 /某物
我正在嘗試以提供反向代理的方式配置 Apache。按照我在站點可用中的配置,還添加了站點啟用:
ServerName p.r.i.v ProxyPassMatch "/myapp1/a1(.*)$" "http://p.r.i.v:82/myapp1/a1/$1" ProxyPassReverse "/myapp1/a1(.*)$" "http://p.r.i.v:82/myapp1/a1/$1" ProxyPassMatch "/myapp2/a2(.*)$" "http://p.r.i.v:81/myapp2/a2/$1" ProxyPassReverse "/myapp2/a2(.*)$" "http://p.r.i.v:81/myapp2/a2/$1"
但是重定向不起作用。我錯過了什麼?請考慮直接訪問私有資源的工作,意思是*http://priv:81/myapp2/a2/something,但http://publ/myapp2/a2/something*沒有解決
感謝任何幫助謝謝西蒙妮
問題已解決。在代理的 url 中有一個編碼的字元,它需要一個正確的定義。在這種情況下,我在 ProxyPass 和 ProxyPassReverse 規則旁邊添加了
AllowEncodedSlashes On
和。nocanon
謝謝西蒙妮