-->

Ubuntu環境でnginxを導入する方法

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

まだ 次のページではnginxのセキュリティ設定も併せて行っています。

nginxのポート番号について

まずaptを使ってnginxをインストールします。
Copy Code

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 
というファイルを作ってみました。

serverブロックへ設定を記述

test.host.confの中に以下のようなコードを打ち込みました。
(事前にドメインとSSL証明書を取得しておく必要があります)
個々のWebページに対するルーティング作業は、
 serverブロック 
内に記述していきます。
Copy Code

# --- HTTPS設定(テストポート886設定)
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へのフルパス」;

        # ログの設定
        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;

        # このドメインの全ページに適用される設定
        # GETとPOST(とHEAD)以外のリクエストは全て拒否する
        location /
        {
                limit_except GET POST { deny all; }
        }
}
最後の方に書いてある
 /var/www/html/index.nginx-debian.html 
というのは、nginxインストール時に自動的に作られるhtmlです。

編集を終えたら
 nginx -t 
のコマンドで構文に間違いがないか事前に確認が可能です。

サーバーを起動


設定したポート番号の解放を行ってください。今回の場合160と886を解放します。
Copy Code

sudo ufw allow 886/tcp

指定のポートが解放されたか確認します。
Copy Code

sufo ufw status

最後にnginxサーバーを起動します。
Copy Code

sudo service nginx start

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