我在 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 服务器的代理路径)是我只有一个端口在我的服务器上打开,所有请求都应该通过它接收。