手順だけメモ

  • nginxのインストール: sudo apt install -y nginx
  • ufwの設定 sudo su - でrootになってからやる
    • ufw disable # sshが切れちゃうかもなので、一時的に無効化
    • ufw default deny incoming # 内向きの接続を、まずは全部不許可
    • ufw default allow outgoing # 外向きは、全部許可
    • ufw allow ssh # sshを許可
    • ufw allow ‘Nginx Full’ # http, httpsを許可. これは、nginxのインストール後に実行する必要(たぶん)
    • ufw enable
  • DNSの設定
  • ブラウザで、http://example.hotoku.info にアクセス → nginxのwelcomeが見える
  • アプリのレポジトリをclone
  • clientのビルド: npm i && npm run build
  • /var/www/example作成 → パミ変更 sudo mkdir -p /var/www/example; sudo chmod o+w /var/www/example
  • clientの生成物をデプロイ build以下を/var/www/exampleにコピーする
  • /etc/nginx/sites-available/example.hotoku.info作成 → sites-enabledにリンクを張る, rootを/var/www/exampleに設定
  • configのチェック sudo nginx -t
  • nginx再起動 sudo systemctl restart nginx.service
  • ブラウザで、http://kintai.hotoku.info にアクセス → アプリの空の画面が見える
  • certbotインストール sudo apt install python3-certbot-nginx
  • SSL証明書をインストール: certbotにお任せ sudo certbot --nginx -d example.hotoku.info
  • ブラウザで、https://kintai.hotoku.info にアクセス → アプリの空の画面が見える
  • basic認証を入れる
    • sudo apt-get install apache2-utils # pluginを入れる
    • sudo htpasswd -c /etc/nginx/.htpasswd heyjude
  • example.hotoku.info にbasic認証設定を追加
  • sudo nginx -t
  • sudo systemctl restart nginx.service
  • ブラウザで、https://kintai.hotoku.info にアクセス → 認証を求められる
  • アプリサーバーstart python -m example_server server
  • /etc/nginx/sites-available/kintai.hotoku.info編集 → location /api, /graphqlを追加. basic認証も追加
  • sudo nginx -t
  • sudo systemctl restart nginx.service
  • ブラウザで、https://kintai.hotoku.info にアクセス → データが見える
# -*- mode: nginx -*-

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/example;
        index index.html index.htm index.nginx-debian.html;

        server_name example.hotoku.info;

        location / {
                try_files $uri $uri/ =404;
        }
}
    location / {
        auth_basic "Restricted";                   # 認証時に表示されるメッセージ
        auth_basic_user_file /etc/nginx/.htpasswd; # .htpasswdファイルのパス
    }

    location /api {
        auth_basic "Restricted";                   # 認証時に表示されるメッセージ
        auth_basic_user_file /etc/nginx/.htpasswd; # .htpasswdファイルのパス
        proxy_pass http://localhost:20090;
    }