无法通过NGINX从React应用打开websocket

时间:2018-08-28 22:18:43

标签: reactjs docker nginx websocket socket.io

我有一个通过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容器。

到目前为止,很好。

当我尝试打开W​​ebSocket时出现问题。 Websocket服务器也在api容器中,但在端口8081中也在侦听。

在我的代码中,我有这个:

const socket = openSocket('http://api:8081'); //openSocket is from socket.io library

但是,在我的Chrome控制台中,我得到了ERR_NAME_NOT_RESOVED

我如何配置NGINX以便将请求传递给api容器?

0 个答案:

没有答案