株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

Nginx→RocetChatの構成。
こちらの設定を入れる必要がある。

location /chat/ {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

proxy_http_version

HTTPプロトコルバージョンを定義する。
websocketに必要なkeepaliveはバージョン1.1以上で利用可能。
デフォルトが1.0なので明示的に指定する必要がある。

proxy_set_header Upgrade $http_upgrade;

プロトコルスイッチという仕組みで、HTTP/1.1からWebsocketへ変更する。

proxy_set_header Connection “upgrade”;

送信先にコネクションを維持するか否かを伝えるヘッダー。
upgradeまたはcloseが設定される。

全部載せの場合の例

server {
        listen 443 ssl;
        listen [::]:443 ssl;

        server_name rocketchat.g-service.net;
        ssl_certificate /etc/nginx/cert/fullchain.pem;
        ssl_certificate_key /etc/nginx/cert/privkey.pem;

        location / {
            proxy_pass http://127.0.0.1:3000/;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_cache_bypass $http_upgrade;
            #proxy_redirect off;
        }
}

参考
https://qiita.com/YuukiMiyoshi/items/d56d99be7fb8f69a751b
http://nginx.org/en/docs/http/websocket.html

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)