我在 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/
到以 java docker 开头的 Nginx 服务器。所以,我为我的 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 服务器发送发送请求时,我的 Nginx 服务器包含/api/
URL(如http://path_to_my_server:3010/api/login
),我得到 404 Not Found 响应。
我的配置文件有什么问题吗?我基本上使用了错误的解决方案吗?我应该怎么做才能解决这个问题?
原因(通过 nginx 服务器有一个到 java 服务器的代理路径)是我只有一个端口在我的服务器上打开,所有请求都应该通过它接收。