Websocket error

前端使用 React 開發
利用 restful API 來串接資料庫的部分
在本機開發的時候不會有 websocket 連接
但放到 server 上就會跑出來
而且會有 http error 400 的錯誤
妙的是 Connecting 居然是 Upgrade

網路上搜尋到分別有 Apache 跟 Nginx 的解法
我是參考 fuatsengul 說的這部分去做設定的


     ServerName mysite.com
     ServerAlias www.mysite.com

     SSLEngine on
     SSLProxyEngine On
     ProxyRequests Off

     SSLCertificateFile /etc/apache2/ssl/mysite.com.crt
     SSLCertificateKeyFile /etc/apache2/ssl/mysite.com.key
     SSLCertificateChainFile /etc/apache2/ssl/ca.cer

     DocumentRoot /var/www/errorPages

     ErrorDocument 503 /503.html
     ProxyPass /503.html !

     ProxyPass / http://localhost:3999/
     ProxyPassReverse / http://localhost:3999/


RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://localhost:3999%{REQUEST_URI} [P]



主要是紅色區塊那部分
前面那兩行 ProxyPass & ProxyPassReverse 我本來就有加
主要是將 port 3000 導到 port 80

加上紅色區塊後(需要依照自己主機設定修改)
連線就正常了
如下圖



Comments

Popular posts from this blog

mac 安裝 mtr

CentOS7 如何新增/移除 Rich Rule for firewalld

如何設定 SSL VPN 分割通道 on Fortigate 80C