我有一个通过NGINX提供服务的dockerized React应用frontend
:
FROM nginx:alpine
COPY default.conf /etc/nginx/conf.d
COPY ./build /usr/share/nginx/html/
.build
是我的React Web应用程序。 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;
}
}
我的webapp向另一个名为api
的链接容器发出请求,因此所有/api
调用都被代理传递给api
容器。
到目前为止,很好。
当我尝试打开WebSocket时出现问题。 Websocket服务器也在api
容器中,但在端口8081
中也在侦听。
在我的代码中,我有这个:
const socket = openSocket('http://api:8081'); //openSocket is from socket.io library
但是,在我的Chrome控制台中,我得到了ERR_NAME_NOT_RESOVED
。
我如何配置NGINX以便将请求传递给api
容器?