Hos*_*lah 2 nginx node.js docker reactjs
这是我的开发设置:
create-react-app我使用docker 内部创建了一个 React 项目npm start我在我的docker-compose.yml文件中使用通常的方式提供它http://localhost:3000/etc/hosts我添加127.0.0.1 domain.localnginx我创建下面的配置文件:server {
listen 80;
server_name domain.local;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name domain.local;
ssl_certificate /Temp/Project/Certificate.pem;
ssl_certificate_key /Temp/Project/Key.pem;
location / {
proxy_pass http://localhost:3000;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我转到https://domain.local而不是http://localhost:3000失去热重载时,我在控制台中看到此错误:
webpackHotDevClient.js:60 WebSocket 连接到“wss://domain.local/sockjs-node”失败:
../../Project/node_modules/react-dev-utils/webpackHotDevClient.js @ webpackHotDevClient.js:60
webpack_require @ bootstrap:851
fn @ bootstrap:150
1 @ index.js:7
webpack_require @ bootstrap:851
checkDeferredModules @ bootstrap:45
webpackJsonpCallback @ bootstrap:32
(anonymous) @ main.chunk.js:1
webpackHotDevClient.js:76 开发服务器有已断开连接。
如有必要,请刷新页面。
我该如何解决这个问题?
我也在使用代理。所以问题是如何在 NGinx 中设置 websocket 连接。
\n\n\n...包括 \xe2\x80\x9cUpgrade\xe2\x80\x9d 和 \xe2\x80\x9cConnection\xe2\x80\x9d 的逐跳标头不会从客户端传递到代理服务器,因此为了代理服务器要了解 client\xe2\x80\x99 将协议切换到 WebSocket 的意图,必须显式传递这些标头:
\n
location /sockjs-node {\n proxy_pass http://localhost:3000;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}\nRun Code Online (Sandbox Code Playgroud)\n他们建议做的时间长一点。
\n我localhost:3000在前面的示例中为您放置,但我更喜欢使用单独的upstream指令,以免混合上游和地址。所以完整的例子(内部http指令)是:
upstream front {\n server localhost:3000;\n}\n\nmap $http_upgrade $connection_upgrade {\n default upgrade;\n \'\' close;\n}\n\nserver {\n listen 80;\n server_name domain.local;\n return 301 https://$server_name$request_uri;\n}\n\nserver {\n listen 443 ssl;\n server_name domain.local;\n\n ssl_certificate /Temp/Project/Certificate.pem;\n ssl_certificate_key /Temp/Project/Key.pem;\n\n location / {\n proxy_pass http://front;\n }\n\n location /sockjs-node {\n proxy_pass http://front;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection $connection_upgrade;\n proxy_set_header Host $host;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n不过,还没有使用证书检查您的示例。
\n| 归档时间: |
|
| 查看次数: |
6340 次 |
| 最近记录: |