У меня есть закрепленное приложение React frontend
, которое обслуживается через NGINX:
FROM nginx:alpine
COPY default.conf /etc/nginx/conf.d
COPY ./build /usr/share/nginx/html/
.build
- это мое веб-приложение React. default.conf
содержит это:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /api/ {
proxy_pass http://api:8080;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Мое веб-приложение отправляет запросы к другому связанному контейнеру с именем api
, поэтому все вызовы /api
являются прокси, передаваемыми в контейнер api
.
Пока все хорошо.
Проблема возникает, когда я пытаюсь открыть веб-сокет. Сервер Websocket прослушивает также в api
контейнере, но в порту 8081
.
В моем коде у меня есть это:
const socket = openSocket('http://api:8081'); //openSocket is from socket.io library
Но в моей консоли Chrome я получаю ERR_NAME_NOT_RESOVED
.
Как я могу настроить NGINX, чтобы прокси передавал этот запрос в api
контейнер?