У меня проблемы с docker-compose
и nginx
. Во-первых, у меня есть это docker-compose.yml
:
services:
nginx:
build: ./nginx
ports:
- '8080:80'
depends_on:
- web
- api
web:
build: ./web
depends_on:
- api
api:
build: ./api
И web
(порт 3000), и api
(порт 8000) являются серверами экспресс-доставки, которые возвращают WEB и API соответственно. Теперь внутри ./nginx
:
# Dockefile
FROM nginx:alpine
COPY ["default.conf", "/etc/nginx/conf.d/"]
EXPOSE 80
# default.conf
server {
location / {
proxy_pass http://web:3000;
}
location /api {
proxy_pass http://api:8000;
}
}
Теперь, когда я иду на http://localhost:8080,, я получаю WEB , но когда я иду на http://localhost:8080/api,, он перенаправляется на http://localhost:1337/api/, и я ничего не получаю ( кстати, выдает ошибку 304)
Однако, когда я пишу этот default.conf (вставьте api
в /
)
# default.conf
server {
location / {
proxy_pass http://api:8000;
}
location /api {
proxy_pass http://web:3000;
}
}
Я получаю тот же результат, но в /
я получаю API , поэтому оба сервера работают.