他のパッケージを導入してからのNginxの設定は、追々行なうものとする。
systemctl status nginx -l
上記コマンドはNginxのステータスを確認するときに使用する。
設定ファイルを確認する
設定ファイルの管理方法は各環境ごとに合わせるが、私の場合は「/etc/nginx/nginx.conf」にはあまり追加の記述を入れないようにしている。
ただし以下の条件では「/etc/nginx/nginx.conf」を編集している。
- 「/etc/nginx/nginx.conf」の既存設定をコメントアウトする
- 「/etc/nginx/nginx.conf」の既存設定のルールを変更する
- 追加の設定ファイルを読み込む
nginx.confの設定
mainコンテキスト(全体設定)の設定
worker_processesはworker_processes 1;のようにworkerのプロセス数を指定できる。
性能を出したい場合は、コア数と同数のworkerを起動するようにする。
→今回はworker_processes auto;に設定。
error_log /var/log/nginx/error.log notice;だとエラー量が多いので、error_log /var/log/nginx/error.log warn;に変更。
eventsコンテキストの設定
worker_connections 1024;
1workerのプロセスの同時接続数。1回のアクセスで1つの接続を使う。
ただしリバースプロキシとしてNginxを動作させると、アクセスがあったときにバックエンドのサーバーとも通信するため、1回のアクセスで2つの接続を使う。
セキュリティ対策
Nginxのバージョンを非表示にする
デフォルトだと、ブラウザのデベロッパーツールやcurlからNginxのバージョンを確認できてしまうので、Nginxに設定を加えてバージョンを非表示にする。
まずはじめに、curlからバージョンが確認できるかどうかを実際に試す。
curl -I <URL>
HEADを確認すると「Server: nginx/1.22.1」とのようバージョンが露呈されていた。
Nginxのバージョンを非表示にするため、Nginxの設定ファイルのhttpブロックに「server_tokens off;」を追加する。
http {
server_tokens off;
「include /etc/nginx/conf.d/*.conf;」について
nginx.confのhttpブロックの中に「include /etc/nginx/conf.d/*.conf;」と入っている。
「/etc/nginx/conf.d/*.conf」にあるconfファイルから、httpブロックに対する設定ファイルを登録できる。
「/etc/nginx/conf.d/*.conf」のファイルからhttpブロックを登録すると以下のようなエラーが出るので、httpでラップする必要は無し。
“http” directive is not allowed here in /etc/nginx/conf.d/default.conf:1
ディレクトリリスティング攻撃対策
アクセス先にインデックスファイルがないとファイル一覧が表示される。アップロードした非公開ファイルをうっかり覗き見られてしまうリスクがあるので、意図していない場合は非表示にした方がいい。
autoindex off;
Apacheでいう「Options -Indexes」。httpブロックの中で設定できるので、「/etc/nginx/conf.d」内の設定ファイルに記述しておく。
Nginxの設定反映
Nginxの設定が完了したら、Nginxの再起動を行なう。
再起動の前に構文チェックを行なう。
nginx -t
エラーがなければNginxを再起動する。
systemctl restart nginx
いちばんめのサーバー構築の流れ
-
1-1 初期設定
-
1-2 新規ユーザー(一般ユーザー)の作成と設定
-
1-3 Nginx導入とhttpの準備
-
1-4 Nginxの初期設定
-
1-5 php導入
-
1-6 Apache導入と初期設定
-
1-7 リバースプロキシを準備する前の事前知識
-
1-8 サーバーIPアドレスとドメイン(ワイルドカード指定)の設定
-
1-9 ドメイン個別設定とリバースプロキシ構築
-
1-10 Let’s Encrypt(Certbot)を使ったSSL/TLS証明書の発行と自動更新設定
-
1-11 MySQL導入
-
1-12 MySQLのパフォーマンスチューニング
-
1-13 MySQLへのログインと初期設定
-
1-14 MySQLからDB・ユーザーの準備/ユーザーの権限設定
-
1-15 Zabbix導入
-
1-16 (寄り道)Zabbixのアップグレード
-
1-17 PHPの詳細設定
-
1-18 WP-CLIとWordPressの導入