我使用下面的配置nginx的1.4.1:nginx的與代理斜線傳球
server { listen 8000; server_name correct.name.gr; location /test/register { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1; } }
當用戶訪問次數http://correct.name.gr:8000/test/register/
它們應該被代理到它運行的Apache我想要做的就是端口80.
當我訪問http://correct.name.gr:8000/test/register/
我得到正確的結果(index.php)。 當我訪問http://correct.name.gr:8000/test/register/asd
時,我得到了正確的結果(來自apache的404)。 當我訪問http://correct.name.gr:8000/test/asd
時,我得到正確的結果(來自nginx的404)。 當我訪問http://correct.name.gr:8000/test/register123
時,我得到了正確的結果(來自apache的404)。
問題是當我訪問http://correct.name.gr:8000/test/register
。我得到了一個301響應,我被重定向到http://localhost/test/register/
(注意最後的斜線,當然還有'localhost')!
我還沒有做任何其他配置到Nginx的尾部斜線或類似的東西。你知道什麼是問題嗎?我想要http://correct.name.gr:8000/test/register
通過代理到apache正常工作(或者如果不可能,至少發出404錯誤而不是重定向到用戶的本地主機)。
更新1:我想http://correct.name.gr:8000/test/register
從不同的計算機比昨天我有不良行爲的一個..那麼,它的工作:我剛剛說向我指出了正確的http://correct.name.gr:8000/test/register/
301響應!如何從一臺計算機上工作而不是從另一臺計算機上工作(我在兩臺計算機上使用相同的瀏覽器 - Chrome)?我明天再試一次,從第三個測試中看到行爲。
謝謝!
不,我沒有嘗試,玩......我明天 - 但看看更新請 – Serafeim
只是爲了避免任何瀏覽器緩存的副作用,我寧願推薦測試這些重定向從殼上捲曲:「curl -IL http://correct.name.gr:8000/test/register」 – vreen
是的,非常好的評論... Curl FTW! – Serafeim