はじめに
この記事は過去に書いた以下の記事のティラノスクリプトのゲームをさくらのVPSにリリースした時の覚書です。
前提
さくらのVPSとNginxを使い、ティラノスクリプトのゲームをリリースする手順。 前提として標準OSのインストールでUbuntu18.04を選択してインストール済みであること
またLetsencryptを使ってSSL化するまでの処理も記載しておく
基本的にパッケージマネージャからNginxやLestsencryptをインストールので他のUbuntu(20.04とか)でも基本的にリリースできると思う
手順
まずは、さくらのVPSへとログインする。ログイン用のパスワードやアカウントはOSの標準インストール時に設定したユーザー名とパスワードでログイン
login: ubuntu passowrd: hogehoge
ログイン後、まずはパッケージのアップデートをする
sudo apt update
アップデートが完了後、必要なパッケージをインストールしていく
sudo apt install -y nginx letsencrypt git
今回はGitHubで管理しているティラノスクリプトのゲームを使用するためgit
をインストールしている
インストール完了後、ホームディレクトリ以下にティラノスクリプトのゲームをclone
してくる
git clone https://github.com/username/tyrano_game_name.git
次に、Nginxの設定を編集する。編集する内容としてはNginxが静的なコンテンツを返している部分を編集するので/etc/nginx/sites-enabled/default
をvi
などで開いて以下のようにする
server { listen 80; listen 80 [::]:80 return 301 https://$host$request_uri; } server { listen 443 ssl default_server; listen 443 [::]:443 ssl default_server; root /home/ubuntu/tyrano_game_name/; }
なお、ポートの80にアクセスした場合は強制的に443へとリダイレクトさせている。
次に、SSL証明書の設定を行う。
まずはNginxをいったん止める
sudo systemctl stop nginx
これはSSL証明書の発行時にエラーが発生するのを回避するため
次に、Letsencryptを使って証明書を発行する
sudo letsencrypt certonly --standalone -d domain
証明書発行後、証明書が格納されているディレクトリへのアクセス権限を付与
cd /etc/letsencrypt && sudo chmod 777 live && sudo chmod 777 domain
最後に、SSL証明書を使うようにNginxの設定を変更
server { listen 80; listen 80 [::]:80 return 301 https://$host$request_uri; } server { listen 443 ssl default_server; listen 443 [::]:443 ssl default_server; ssl_certificate /etc/letsencrypt/live/domain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem; root /home/ubuntu/tyrano_game_name/; }
これで設定はOK!
あとは設定を再読み込みして、Nginxを動かせばリリースは完了
sudo systemctl reload nginx sudo systemctl start nginx
注意点
SSL証明書のディレクトリへの権限はreadonlyにした方が良いかもしれないので変更しておくといいかも
あと、80にアクセスするときのリクエストは別にわたさなくてもいいかもしれない