Nginxをインストールするとコマンドラインでnginxを実行できるようになり、ディストリビューションの自動起動設定ツールを使わなくても直接Nginxを起動できます。
実行は管理者権限で行い、Ubuntuではsudoを付けて実行してください。Nginxをソースからインストールした場合、フルパスで「/usr/local/nginx/sbin/nginx」を実行します。
・Nginxの起動
# nginx
デーモンの停止/再起動など、nginxプロセスを操作するには「-s 操作内容」オプションを使用します。
# nginx –s stop ←直ちに停止 # nginx –s quit ←リクエスト処理が完了した後停止 # nginx –s reopen ←ログファイルの再オープン # nginx –s reload ←設定再読み込み
Nginxの起動やプロセスを実行する場合、設定ファイルに誤記があると、操作を継続できません。設定ファイルを修正した場合、「-t」で指定ミスがないかテストするようにします。
# nginx –t # nginx –t –c /home/test/test.conf ←設定ファイルがデフォルト以外のディレクトリにある場合
その他の起動オプションは「-h」で確認できます。
$ ./nginx -h
Nginxの設定は主に「nginx.conf」ファイルで行います。パッケージを使ってインストールした場合は「/etc/nginx/」に、ソースアーカイブをデフォルトオプションでビルドした場合は「/usr/local/nginx/conf/」に配置されます(注3)。シンプルなnginx.confは図2のようになります。
nginx.confでは「ディレクティブ」によって各設定項目を指定します。ディレクティブ名に続けて設定値を指定し、行末には必ず「;(セミコロン)」を付けます。
モジュールに依存する設定は「ディレクティブ・ブロック」を使って設定します。モジュールがインストールされていなければスキップします。
注3:Ubuntuでは一部「/etc/nginx/sites-available/default」ファイルを使用します
デフォルトで配置されるnginx.confをそのまま使っても、Webサーバーとして動作させることは可能ですが、少し設定を見直すだけで、パフォーマンスを改善したり、機能を追加できたりします。
設定を変更した後、前項の「Nginxの操作」を参考にnginx.confファイルをテストし、誤りがないか確認し、ないようならばプロセスの再起動、または設定ファイルの再読み込みを実施します。
・最大同時接続数の上限を変更する
最大同時接続数を変更するには「worker_processes」や「worker_connections」を設定します。最大同時クライアントは「worker_processesの値×worker_connectionsの値」になります。
worker_processes 2; ←CPUのコア数と同じに pid /run/nginx.pid; events { worker_connections 1024; ←1つのworkerプロセスが同時に処理できる最大接続数を指定 # multi_accept on; }
CPU数やコア数が分からない場合、「/proc/cpuinfo」を見るか、次の手順でカウントします。
$ grep processor /proc/cpuinfo | wc -l 2 ←CPU(またはコア)数
worker_connectionsにはシステムリソース(プロセス数)の上限値以上の値は指定できません。お使いのプラットフォームの最大プロセス数は「ulimit」コマンドで確認できます。
$ ulimit -n 1024 ←最大プロセス数 (*CentOS 6.5での実行例)
・サーバー情報を隠蔽する
HTTPレスポンスのヘッダーにはWebサーバーの種類やバージョンが表示されます。バージョンが特定されるのはセキュリティ上好ましくありません。Nginxではサーバーの種類は消せませんが、バージョン情報を非表示にすることはできます。
http { ...省略 server_tokens off; ←「off」でバージョン非表示に
・アクセス制限
IPアドレスやネットワークアドレス単位でアクセス制御を行うことができます。
下の例では特定ホストやネットワークからのみアクセスできるようにしています。特定ホスト/ネットワークのアクセスを遮断するには、「deny IPアドレス(またはネットワークアドレス)」を指定します(Ubuntuの場合は、「/etc/nginx/sites-available/default」ファイルを修正します)。
http { ... server { ... location / { allow 127.0.0.1; ←ローカルホストを許可 allow 192.168.0.0/24; ←ネットワーク単位で許可 deny all; ←指定以外のIP/ネットワークからのアクセスを全て遮断
次回はリバースProxyキャッシュサーバーなど、より具体的な用途に合わせた設定方法を解説します。
愛知県出身、東京都在住。1970年生まれ。大学在学中から地元ISPの立ち上げに係わり、紆余曲折を経て通信キャリアに勤務。企画からコーディングやインフラ構築まで幅広い業務に従事。@ITには2001年から数多くの記事を寄稿。その他、Software Design(技術評論社)や日経Linuxでの連載をはじめ、著書に『サーバ構築の実際がわかる Apache[実践]運用/管理』(技術評論社)、『rsyslog 実践ログ管理入門』(技術評論社)、『MySQL徹底入門 第3版』(翔泳社/共著)、『PHPによるWebアプリケーションスーパーサンプル〜リッチクライアント編〜』(ソフトバンククリエイティブ/共著)ほか多数。
Copyright © ITmedia, Inc. All Rights Reserved.