2016-11-09 3 views
3

Я пытаюсь получить webpack-dev-server, работающий внутри контейнера Docker, а затем доступ к нему через хост NGINX. Начальные index.html загружаются, но соединение веб-сокетов с сервером dev невозможно подключить.Webpack Dev Server с NGINX proxy_pass

VM47: 35 WebSocket подключение к 'WS: //example.com/sockjs-node/834/izehemiu/websocket' не удалось: Ошибка при WebSocket рукопожатия: Неожиданный код ответа: 400

I используя следующую конфигурацию.

map $http_upgrade $connection_upgrade { 
    default upgrade; 
    ''  close; 
} 

upstream webpack_dev_server { 
    server node; 
} 

server { 
    server_name _; 
    listen 80; 
    root /webpack_dev_server; 

    location/{ 
    proxy_pass http://webpack_dev_server; 
    } 

    location /sockjs-node/ { 
    proxy_pass http://webpack_dev_server/sockjs-node/; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $host; # pass the host header - http://wiki.nginx.org/HttpProxyModule#proxy_pass 

    proxy_http_version 1.1; # recommended with keepalive connections - http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version 

    # WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection $connection_upgrade; 
    } 
} 

ответ

5

Proxy проход должен быть IP и порт вашего контейнера WebPack-DEV-сервер, и вам необходимо proxy_redirect off;

location /sockjs-node { 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header Host $host; 

    proxy_pass http://node:8080; 

    proxy_redirect off; 

    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
} 

Также не забудьте добавить опрос к вашему WebPack-DEV промежуточного

watchOptions: { 
    aggregateTimeout: 300, 
    poll: 1000 
    } 
+1

Я работал над этим еще в случае сервера HTTPS и имел некоторые проблемы, и решил их и разместил ответ здесь: http://stackoverflow.com/questions/43081342/webpack-dev-server-with- Nginx прокси-пропускания для HTTPS- -domain-cause-neterr-conne, который будет полезен для других, которые проходят через этот пост. – JoelParke

Смежные вопросы