有3種成分,這個問題:閃亮服務器反向nginx的代理不會跟隨301重定向
泊塢容器:我有一個部署在EC2實例泊塢窗容器。更具體地講,我有
rocker/shiny
形象,我一直在使用運行:sudo docker run -d -v /home/ubuntu/projects/shiny_example:/srv/shiny-server -p 3838:3838 rocker/shiny
閃亮服務器:標準閃亮的服務器配置文件是不變,併成立了以服務端口的
/srv/shiny-server
夾中的一切3838,我的本地~/projects/shiny_example
的內容映射到容器的/srv/shiny-server/
。在我的本地
~/projects/shiny_example
,我已經克隆隨機閃亮的應用程序:git clone https://github.com/rstudio/shiny_example
nginx的:我已經建立了
nginx
作爲反向代理和here在整體上/etc/nginx/nginx.conf
的內容。
的問題是,這種設置,當我試圖找回http://<ip-address>/shiny/shiny_example
,我得到一個404的主線索,我有,什麼可能是錯誤的是,當我做:
wget http://localhost:3838/shiny_example
從我的EC2實例在命令行中,我得到:
--2016-06-13 11:05:08-- http://localhost:3838/shiny_example 解決localhost(localhost)... 127.0.0.1
連接到本地主機(本地主機)| 127.0.0.1 |:3838 ...已連接。
HTTP請求發送的,在等待響應... 301永久移動
位置:/ shiny_example/[以下]
--2016-06-13 11:05:08-- http://localhost:3838/shiny_example/
將現有連接重用到localhost:3838。
HTTP請求發送的,在等待響應... 200 OK
長度:3136(3.1K)的text/html]
保存到: 'shiny_example.3'
100%[ ================================================== ================================================== ============================] 3,136 - .- K/s在0.04s
2016-06-13 11: 05:09(79.6 KB/s) - 'shiny_example。3'保存[3136/3136]
其中重點是我的。
我認爲我的nginx配置沒有考慮到請求Docker映射端口時出現301重定向的情況。我認爲該解決方案涉及proxy_next_upstream
,但我希望在嘗試在我的上下文中進行設置時提供一些幫助。
我也認爲這個問題可以忽略Docker上下文,但是理解如何在從Docker容器中的Shiny服務器請求資源時阻止301重定向,以及此行爲是否爲預期。
您是否正在與'http:///shiny/shiny_example'或'http:// :3838/shiny/shiny_example /'進行外部連接?這將有助於您展示失敗的wget命令。請注意,重定向只是爲您的url添加了一個尾部斜線,這不是Docker在做301. –
BMitch
@BMitch nginx正在偵聽80並反向代理'localhost:3838'。另外請注意,'wget'不是失敗,而是正在處理301。 – tchakravarty
@BMitch所以,爲了明確起見,我正在通過外部連接'http:///shiny/shiny_example /'。問題中包含'wget'的輸出。 –
tchakravarty