Ubuntu環境でnginxを導入する方法。
ドメインの紐づけやhttps通信設定、サーバー起動まで。
関連ページ
業務でnginxを使ったプロジェクトに携わった事があり、興味が出たのでその実装メモ。
Node.jsが関わる実装の場合、WebサーバーはApacheよりnginxの方が親和性が高いらしいです。

nginxのポート番号について
まずaptを使ってnginxをインストールします。
インストールが終わったらポート番号を設定していきます。
URLにポート番号を指定していない場合、http通信は暗黙的にポート80、https通信は暗黙的にポート443として処理されます。
nginxはインストール直後の設定だと、
/etc/nginx/sites-available/default
にこのポート80の設定が適用されています。
上の
listen 80 default_server;
がIPv4設定、下の
listen [::]:80 default_server;
がIPv6設定です。
ただ私のVPSサーバーの環境だと、すでにApacheが動いていて、Apacheがポート80も443も占有しています。
今回のnginxはテストとして使いたいだけなので、ポート886というhttps通信用の独自ポート番号を使う事にしました。

設定ファイルの移動
sites-available/defaultを編集すればポート番号を簡単に変えられますが、後々の事を考えるとサイトごとにファイル管理した方がいいです。
defaultファイルの中身を、serverスコープごと丸ごとコメントアウトしてください。
続いて
/etc/nginx/conf.d
に移動します。
ここの下にファイルを作成すると、サーバー起動時にnginxが勝手に読み取ってくれます。
名前は基本なんでもいいですが、拡張子だけはconfである必要があります。
今回は
test.host.conf
というファイルを作ってみました。

設定を記述
test.host.confの中に以下のようなコードを打ち込みました。
事前にドメインとSSL証明書を取得しておく必要があります。
# --- HTTPS設定 ---
server
{
# --- ポート番号設定 ---
# IPv4
listen
886
ssl
default_server;
# IPv6
listen
[::]:886
ssl
default_server;
# 取得したドメイン名を紐づけ
server_name
[ドメイン名]
;
# SSL証明書の設定
ssl_certificate
[fullchain.pemへのフルパス]
;
ssl_certificate_key
[privkey.pemへのフルパス]
;
# --- セキュリティ設定 ---
# 最新のプロトコルのみ許可
ssl_protocols
TLSv1.2
TLSv1.3;
# 安全な暗号化アルゴリズムだけを網羅して許可
ssl_ciphers
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
# ブラウザ側に暗号化アルゴリズムを選択させる(通信スピード強化)
ssl_prefer_server_ciphers
off;
# セッションごとに使い捨ての鍵を使う(前方秘匿性強化)
ssl_session_tickets
off;
# ログの設定
access_log
/var/log/nginx/test.host.access.log;
error_log
/var/log/nginx/test.host.error.log;
# 表示したいページのルートディレクトリ
root
/var/www/html;
# 表示したいindexページ
index
index.nginx-debian.html;
}
最後の方に書いてある
/var/www/html/index.nginx-debian.html
というのは、nginxインストール時に自動的に作られるhtmlです。
編集を終えたら
nginx -t
のコマンドで構文に間違いがないか事前に確認が可能です。

サーバーを起動
設定したポート番号の解放を行ってください。今回の場合886を解放します。
最後にnginxサーバーを起動します。
[ドメイン名]
:886とブラウザのURLに入力すると、nginxのデフォルトページが表示されるはずです。
0
0