勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

Nginxのバーチャルホスト設定とLet's Encryptの導入

   2024/02/22  Nginx サーバー

NginxでVirtualHostの設定し、複数のドメインを同一サーバに割り当てたい。また、Virtual Host設定したドメインに対してLet's Encryptを導入し、SSL対応したい。あとドメイン毎にaccess_logやerror_logを個別に出力させたい。以下に設定方法をメモ。

 

バーチャルホスト設定

#設定ファイルを編集
vi /etc/nginx/conf.d/default.conf

#以下を追記する(hoge.com部分は適宜変更する)
server { 
    listen 80; 

    server_name hoge.com;

    access_log /var/log/nginx/hoge.com.access.log main;
    error_log /var/log/nginx/hoge.com.error.log;

    location / { 
          root /usr/share/nginx/html/hoge.com; 
          index index.php;
    }

    location ~ \.php$ {
        root           /usr/share/nginx/html/hoge.com;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

バーチャルホスト毎にserver{}で囲って設定していくみたい。

尚、設定ファイルを編集後はすぐにNginxを再起動せずに以下で構文チェックが行えるとのこと。今後は必ず構文チェック後に再起動をかけるようにする。

#構文チェック
nginx -t

#以下が表示されるとOK
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

#nginx再起動
systemctl restart nginx

 

Let's Encryptインストール

#証明書インストールのテスト(hoge.com部分は適宜変更する)
certbot certonly --webroot -w /usr/share/nginx/html/hoge.com -d hoge.com --email test@hoge.com --dry-run

#問題無ければ証明書インストール
certbot certonly --webroot -w /usr/share/nginx/html/hoge.com -d hoge.com --email test@hoge.com

 

Nginx設定ファイル再編集

#設定ファイルを編集
vi /etc/nginx/conf.d/default.conf

#先ほどバーチャルホストしたserver{}内のlisten80の下あたりに以下を追記
    listen 443 ssl;
    ssl_certificate     /etc/letsencrypt/live/hoge.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/hoge.com/privkey.pem;

上記設定後、念のため構文チェックを行ってからNginxを再起動する。この時点でhttpsでのアクセスが可能となる。

 

所感

ApacheよりもNginxの設定ファイルの方が直感的で分かりやすいような気がする。後は今回とは別件だけどNginxはhtaccessが使えないらしいので、Basic認証やリダイレクトをどうするのか勉強しておきたいところ。

 

参考サイト

https://www.unix-power.net/networking/post-1116

 - Nginx サーバー

  関連記事

CentOS7系にLEMP環境(Linux + Nginx + MySQL + PHP)を構築

先日KAGOYAのVPSからIndigoに移行した際にCentOS6から7へバー ...