[英]Websocket error when using a proxy_pass to CRA development server using Nginx and Docker
我正在嘗試將 Nginx 中的proxy_pass
傳遞到位於localhost:3000
的 React 開發服務器。 它目前可以工作,但我在控制台中看到一個錯誤,我不確定這會導致任何問題:
WebSocketClient.js:16 WebSocket 連接到 'ws://localhost/ws' 失敗:
Nginx.conf :
upstream backend {
server backend:8000;
}
upstream frontend {
server frontend:3000;
}
server {
listen 80;
location / {
proxy_pass http://frontend$request_uri;
proxy_set_header Host $http_host;
}
location /api/ {
proxy_pass http://backend;
proxy_set_header Host $http_host;
}
location /admin/ {
proxy_pass http://backend;
proxy_set_header Host $http_host;
}
}
我嘗試將WDS_SOCKET_PORT=0
添加到前端.env
文件中,還嘗試添加:
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
...正如其他 SO 帖子中所建議的那樣。 都沒有奏效。
這是什么錯誤? 我該如何解決?
我通過在變量中添加更多來解決這個問題
environment:
- WDS_SOCKET_PORT=443
也許它可以幫助你,但如果你沒有代理,請在 docker-compose.yml 中使用 WDS_SOCKET_PORT=0
嘗試這個:
environment:
- WDS_SOCKET_PORT=443
這個對我有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.