我正在尝试将 Web 服务代理回ASP Net Core
. 容器升起,一切都很好。我什至可以通过在另一个容器中GET
提出请求:curl
米。1(我在一个容器中Nginx
)
Nginx
也可以正确启动,我可以调用另一个完全相同的代理服务 ( /friday/
),但需要注意的是 - 它是用python
.
配置实际上是相同的,但是/vkcore
对于任何请求它都会返回 404。
码头工人-compose.yml
version: "3.7"
services:
fcore:
restart: on-failure
build: ./Friday_Core
command: python3 main.py
ports:
- 7000:7000
links:
- db
nginx:
build:
context: .
dockerfile: ./nginx/dockerfile
ports:
- 8005:80
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/logs:/var/log/nginx
vkcore:
build: ./Friday_VkCore
restart: on-failure
我试图只倾倒最必要的配置。但总的来说,因为 我可以GET
从容器到容器,然后正确配置内部网络,问题出在Nginx
.
配置nginx
:
worker_processes auto;
events {
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
upstream vkcore {
server vkcore:80;
}
server {
listen 80;
location /supervisor {
resolver 127.0.0.11 ipv6=off;
set $target http://supervisor:6006;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass $target;
}
location /friday {
resolver 127.0.0.11 ipv6=off;
set $target http://fcore:7000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass $target;
}
location /vkcore/ {
proxy_pass http://vkcore;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
}
}
}
由于我可以沿路径访问服务
<URL>/threads
,而Nginx
我先是沿路径访问了服务/vkcore
,那么结果,路径就到了服务/vkcore/threads
。这就是它返回 404 的原因。
通过使用解决
rewrite
: