-->

nginxの導入方法

nginxの導入方法

Ubuntu環境でnginxを導入する方法。
ドメインの紐づけやhttps通信設定、サーバー起動まで。

関連ページ
業務でnginxを使ったプロジェクトに携わった事があり、興味が出たのでその実装メモ。
Node.jsが関わる実装の場合、WebサーバーはApacheよりnginxの方が親和性が高いらしいです。

nginxのポート番号について

まずaptを使ってnginxをインストールします。
sudo apt install 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を解放します。
sudo ufw allow 886/tcp

最後にnginxサーバーを起動します。
sudo service nginx start

[ドメイン名]
:886とブラウザのURLに入力すると、nginxのデフォルトページが表示されるはずです。
0
0