这个问题有三个要素:
Docker容器:我有一个部署在EC2实例上的
rocker/shiny
镜像,我使用以下命令运行它:sudo docker运行/home/ubuntu/projects/shiny_example:/srv/shiny-server rocker/shiny
/srv/shiny-server
文件夹中的所有内容,并且我的本地~/projects/shiny_example
的内容被映射到容器的/srv/shiny-server/
。在我本地的~/projects/shiny_example
中,我克隆了一个随机闪亮的应用程序:
git clone https://github.com/rstudio/shiny_example
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解析本地主机...127.0.0.1
正在连接到localhost (localhost)|127.0.0.1|:3838...已连接。
HTTP请求已发送,正在等待响应...永久移动的301
示例位置:/shiny_/下面的
--2016-06-13 11:05:08-- http://localhost:3838/shiny_example/
重新使用到localhost的现有连接:3838。
HTTP请求已发送,正在等待响应...200好的
长度: 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容器中的闪亮服务器请求资源时如何防止301重定向,以及这种行为是否是预期的,那就更好了。
https://stackoverflow.com/questions/37788901
复制相似问题