【发布时间】:2018-05-09 05:49:57
【问题描述】:
我有一个 docker compose 文件,其中包含两个微服务,我想利用 URI 路由来处理 CORS。这是我的撰写文件:
version: "3.1"
services:
auth-api:
image: xxxx/auth-api:latest
restart: always
depends_on:
- "user-api"
user-api:
image: xxxx/user-api:latest
restart: always
nginx:
image: nginx
restart: always
ports:
- "80:80"
links:
- "auth-api"
- "user-api"
volumes:
- ./nginx:/etc/nginx
我想使用 NGINX 进行路由,但在尝试访问资源时遇到了 404 或 405 问题。我尝试了几种不同的配置,有一段时间 NGINX 说它在启动时找不到 api 端点,我解决了这个问题,所以我认为我的问题主要与路由配置有关。对于这些请求,我希望它是 /auth 和 /user。
worker_processes 1;
events { worker_connections 1024; }
http {
sendfile on;
upstream auth-target {
server auth-api:8080;
}
upstream user-target {
server user-api:8080;
}
server {
listen 80;
location /auth {
proxy_pass http://auth-target;
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 /user {
proxy_pass http://user-target;
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;
}
}
}
我对 NGINX 很陌生,所以我不确定我所做的是否正确。我还应该注意到,这两个 API 都将 8080 作为容器构建的一部分公开。
【问题讨论】:
标签: nginx docker-compose uri microservices