2016-09-05 83 views
2

我在我的nginx.conf中配置了一個反向代理,它工作得很好。有沒有辦法從nginx中的代理轉發頁面?

location /foo/ { 
    proxy_pass http://localhost:5000/; 
    proxy_intercept_errors on; 
    proxy_redirect off; 
} 

,我也處理錯誤的請求:

location @404 { 
    #redirect to http://localhost:5000/foo/index.html 
    return 302 /foo/index.html; 
} 
error_page 404 = @404; 

正如你所看到的,我使用302重定向到的index.html。迄今爲止完美的作品。

但我想要的不是重定向。我想將索引頁面轉發到瀏覽器。 (我需要轉發的原因是我想處理刷新問題,當我啓用html5mode並刪除angularjs應用程序中的#。)

那麼有沒有辦法做到這一點?

+1

你嘗試過'error_page 404 = /foo/index.html'嗎? –

+0

@Sergio,我試過你的解決方案,它只是工作!好的非常感謝! – yukuan

+0

@yukuan:呵?我沒有提出任何建議,是嗎? :) –

回答

1

您的指定位置是強制重定向。 error_page處理不需要重定向。您可以在error_page聲明,是由您的代理位置處理指定本地URI:

例如:

location /foo/ { 
    proxy_pass http://localhost:5000/; 
    proxy_intercept_errors on; 
    proxy_redirect off; 
} 
error_page 404 = /foo/index.html; 

更多見this document

相關問題