連載
» 2014年07月31日 18時00分 公開

これから始める人のためのNginx(2):Nginxのインストールと基本設定 (4/4)

[鶴長鎮一,@IT]
前のページへ 1|2|3|4       

Nginxの操作

 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の記述方法

 Nginxの設定は主に「nginx.conf」ファイルで行います。パッケージを使ってインストールした場合は「/etc/nginx/」に、ソースアーカイブをデフォルトオプションでビルドした場合は「/usr/local/nginx/conf/」に配置されます(注3)。シンプルなnginx.confは図2のようになります。

図2 nginx.confの例

 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アプリケーションスーパーサンプル〜リッチクライアント編〜』(ソフトバンククリエイティブ/共著)ほか多数。


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。