【问题标题】:nginx docker proxy_path to an other docker in the servernginx docker proxy_path 到服务器中的另一个 docker
【发布时间】:2018-03-03 20:51:52
【问题描述】:

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

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/ 开头的 Nginx 服务器的请求响应到 java docker。所以,我为我的 Nginx docker 使用了一个配置文件,如下所示:

服务器 { 听 80 default_server; 听 [::]:80 默认服务器; 根 /opt/www; server_name localhost some_ip_address some_other_ip_address ; gzip打开; gzip_types 应用程序/八位字节流 应用程序/原子+xml 应用程序/x-javascript 应用程序/javascript 应用程序/json 应用程序/rss+xml 应用程序/vnd.ms-fontobject 应用程序/x-font-ttf 应用程序/x-web-app-manifest+json 应用程序/xhtml+xml 应用程序/xml 字体/opentype 图片/svg+xml 图像/x-icon 文本/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 服务器发送发送请求时,URL 中包含 /api/(如 http://path_to_my_server:3010/api/login),我收到 404 Not Found 响应。

我的配置文件有什么问题吗?我基本上使用了错误的解决方案吗?我应该怎么做才能解决这个问题?

原因(通过 nginx 服务器有到 java 服务器的代理路径)是我只有一个端口在我的服务器上打开,所有请求都应该通过它接收。

【问题讨论】:

    标签: docker nginx nginx-location nginx-reverse-proxy


    【解决方案1】:

    检查它们是否链接在一起,默认情况下它们不能互相看到。

    docker inspect <your container> | grep Links

    你可以在 nginx 中使用 rewrite

    Create Temporary and Permanent Redirects with Nginx

    【讨论】:

      猜你喜欢
      • 2018-11-08
      • 2020-12-27
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多