CodiMDをNginxのリバースプロキシでHTTPS公開する方法

目次

構成イメージ

今回の構成イメージは以下になります。

なお、サーバ自体がPublic公開されているかつ、80および443ポートが開放されている必要があります。

CodiMDのインストール

今回のCodiMDはDocker上に作成しているためCodiMDは以下の手順で作成します。

CodiMDをDockerで作成する手順

Niginxをインストール

今回は以下の手順でNginxをインストールします。

LinuxにNginxのインストール

SSL証明書の取得

SSL証明書も事前に取得しておく必要があります。
今回はネットオウルのSSLボックスというサービスでSSL証明書を取得しています。

SSL証明書サービスから取得した

  • SSL証明書(sample.com.full.crt)
  • 秘密鍵(sample.com.key)

/etc/ssl/sample.com/ に配置することにします。
なお、SSL証明書に中間証明書が含まれていない場合は修正する必要があります。

SSL証明書(crt)と中間証明書(chain)から完全な証明書(fullchain)を作成する方法

Nginxでリバースプロキシを設定する

次にnginx.confを編集していきます。
※ 今回はhttpセクションのみ記載しています。

http {
        # setup a upstream point to CodiMD server
        upstream @codimd {
            server 127.0.0.1:3000;
            keepalive 300;
        }

        # for socket.io (http upgrade)
        map $http_upgrade $connection_upgrade {
            default upgrade;
            ''      close;
        }

        # redirect all http traffic to https
        server {
            listen 80;
            server_name sample.com;
            return 301 https://$server_name$request_uri;
        }

        # https server
        server {
            listen 443 ssl http2;
            server_name codimd.riaply.com;

            # setup certificate
            ssl_certificate /etc/ssl/sample.com/sample.com.full.crt;
            ssl_certificate_key /etc/ssl/sample.com/sample.com.key;

            location / {
              proxy_http_version 1.1;

              # set header for proxy protocol
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection $connection_upgrade;

              # setup for image upload
              client_max_body_size 8192m;

              # adjust proxy buffer setting
              proxy_buffers 8 32k;
              proxy_buffer_size 32k;
              proxy_busy_buffers_size 64k;

              proxy_max_temp_file_size 8192m;

              proxy_read_timeout 300;
              proxy_connect_timeout 300;
              proxy_pass http://@codimd;
            }
        }
}

設定後にNginxを再起動すれば指定のドメインでアクセスすることができます。

systemclt restart nginx
目次
閉じる