Ubuntu 22.04 で Nginx リバースプロキシの構成
■Nginxをダウンロードしてインストールします
まず、ソフトウェア パッケージのインデックスを更新し、nginx パッケージをインストールします。
# apt update
# apt install nginx
ファイルを開き、IPv6 に関連する行をコメント アウトし、変更を保存してファイルを終了します。
# vi /etc/nginx/sites-available/default
...
server {
# listen 80 default_server;
# listen [::]:80 default_server;
...
コマンドを実行して、インストール パッケージを正しく構成します。
# dpkg --configure -a
次のコマンドを実行して、ユーティリティの機能を確認します。
# service nginx status
ufw を使用した Nginx 接続ルールを許可します。
# ufw allow 'Nginx HTTP'
# ufw allow 'Nginx HTTPS'
■サーバー側の構成
/etc/nginx/sites-available ディレクトリに、ドメインの名前のファイルを作成します。
# vi /etc/nginx/sites-available/test_domain.com
test_domain.com ファイルへのシンボリック リンクを作成します。
# ln -s /etc/nginx/sites-available/test_domain.com /etc/nginx/sites-enabled/
-t スイッチをnginx -t使用して nginx をテストしてみましょう。
# nginx -t
■サーバーSSL証明書の作成
下記のディレクトを用意します。
# mkdir /etc/ssl/private
# chmod 700 /etc/ssl/private
次のコマンドで、OpenSSL を使用して自己署名キーと証明書のペアを作成します。
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
強力な Diffie-Hellman グループを作成します。
# openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
■サーバーSSL/TLS設定
SSL証明書の取得(Let's Encrypt)
Let's Encrypt から証明書を取得するツールである Certbot Client をインストールします。
# apt -y install certbot
ドメインの証明書を作成します。
# certbot certonly --webroot -w /var/www/html -d test_domain.com
ドメインサイトのコンフィグレーション情報にドメイン証明証を設定します。
# vi /etc/nginx/sites-available/test_domain.com
server {
server_name test_domain.com;
listen 80;
root /var/www/html;
# Enforce HTTPS
return 301 https://$server_name$request_uri;
}
server {
server_name test_domain.com;
listen 443 ssl;
server_name test_domain.com;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
ssl_certificate "/etc/letsencrypt/live/test_domain.com/fullchain.pem";
ssl_certificate_key "/etc/letsencrypt/live/test_domain.com/privkey.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
location / {
try_files $uri $uri/ =404;
}
}
Nginxサーバーを再起動します。
# systemctl restart nginx.service