さくらのVPSでのNginx+ティラノスクリプトでのリリース処理

はじめに

この記事は過去に書いた以下の記事のティラノスクリプトのゲームをさくらのVPSにリリースした時の覚書です。

gamelinks007.hatenablog.com

前提

さくらの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/defaultviなどで開いて以下のようにする

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にアクセスするときのリクエストは別にわたさなくてもいいかもしれない