nginx docker proxy_path到服务器中的其他docker

我有这两个docker运行在y服务器上:

docker-registry:5000/library/nginx:1.7.10.1哪些端口是443/tcp, 0.0.0.0:3010->80/tcp docker-registry:5000/library/nginx:1.7.10.1 443/tcp, 0.0.0.0:3010->80/tcp

docker-registry:5000/library/java:8-jre其中的端口是0.0.0.0:9090->8080/tcp

我想要做的就是响应所有的请求到以/api/开头的java泊坞窗的Nginx服务器。 所以,我为我的Nginx docker使用了一个configuration文件,如下所示:

服务器{
    听80 default_server;
    听[::]:80 default_server;
     root / opt / www;
     server_name localhost some_ip_address some_other_ip_address;
     gzip on;
     gzip_types
        应用/八位字节stream
        应用/primefaces+ xml的
        应用程序/ x-JavaScript的
        应用程序/ JavaScript的
        应用程序/ JSON
        应用/ RSS + xml的
        应用/ vnd.ms-fontobject
        应用程序/ x-字体-TTF
        应用程序/ x-web应用舱单+ JSON
        应用/ XHTML + xml的
        应用程序/ XML
        字体/ OpenType字体
        图像/ SVG + xml的
        图像/ X-图标
        文/ CSS
        纯文本/
        文本/ x分量;

    位置〜^ /(api)/ {
         proxy_set_header主机$ http_host;
         proxy_set_header X-Real-IP $ remote_addr;
         proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
         proxy_pass http:// simorgh-java:8080;
     }
 }

但是当我发送请求从我的浏览器到我的Nginx服务器包含/api/在URL(如http://path_to_my_server:3010/api/login )我得到404 Not Found响应。

在我的configuration文件中是否有任何错误? 我基本上使用错误的解决scheme? 我该怎么做才能解决这个问题?

原因(具有通过nginx服务器的Java服务器的代理path)是我只有一个端口是在我的服务器上打开,所有的请求应该通过接收。

检查一下,看他们是否连接在一起,默认情况下,他们不能看到对方。

docker inspect <your container> | grep Links

你可以在nginx中使用重写

使用Nginx创build临时和永久redirect