、 nginxのモデルのコンセプト:
nginxのは、同時に複数のプロセスを実行するために必要とされるであろう。
マスタープロセスキャッシュローダー・プロセス(キャッシュローダー)およびキャッシュ・マネージャーのプロセス(キャッシュマネージャ)などがあるでしょうとき(マスター)と、いくつかの作業のプロセス(作業員)は、キャッシュを設定します。
すべてのプロセスは、ただ1つのスレッドを含有し、そして主に貫通されているプロセス間通信メカニズム「共有メモリ」。
メインプロセス rootユーザーとワーカー、キャッシュローダーとキャッシュマネージャとして実行するには、非特権ユーザ(ユーザ設定項目)として実行されなければなりません。
主なプロセスは、次のタスクを実行します。
1.設定情報を読み、正のテスト。
2.作成し、結合して、ソケットを閉じます。
3.スタート、終了、保守ワーカープロセスの数。
4.動作特性を再構成せずにサービスを一時停止します。
ログファイルが再オープンされます。
ワーカープロセスの主なタスクは次のとおりです。
1.受信し、クライアントからの着信接続を処理します。
2.リバースプロキシ・フィルタ機能を提供します。
3. nginxのは、他のタスクを完了するために、
nginx.conf コンフィギュレーションファイルの構造
#USERの誰も;#メインモジュールのコマンドは、ユーザーとユーザーグループを実行しているnginxのワーカープロセスを指定しない場合、デフォルトはnobodyアカウントで実行されます。
worker_processes 1;#は、プロセスを開くためにnginxの数を指定します。
worker_rlimit_nofile 100000;オープンファイル制限#workerプロセスの最大数
#error_logログ/ error.logに。
#error_logログ/ error.logに予告。
#error_logログ/ error.logに情報;
#pidログ/ nginx.pid。
イベント{
ファイルディスクリプタを使用します。
worker_connections 1024;
}
/ *
この構成コードを上回っている nginxのグローバルプロパティを配置されています。
ユーザー:メインモジュールコマンド、ユーザーとユーザーグループを実行しているnginxのワーカープロセスを指定し、デフォルトはnobodyアカウントで実行されます。
worker_processes:プロセスを開くには、nginxの数を指定します。
エラーログ:グローバルセットにログの間違ったログファイルのパスと名前を定義するために使用されます。
ログ出力レベルは、デバッグ、情報、告知、警告、エラー、クリティカルから選択する、最も詳細なデバッグログ出力、最小表面クリティカル(クリティカル)出力ログ。デフォルトでは、エラーであります
PID:ファイルの場所を指定するために使用されるプロセスID。
イベント:接続の数とのnginxの動作モードの上限を設定します、
パラメータを前記使用は、動作モードのnginxを指定します(ここでのepollを、ファイルディスクリプタは、多重IO(I / O多重化)の方法です)、
nginxのは、動作モードが選択、投票、kqueueの、ファイルディスクリプタ、rtsigは、/ dev /ポールを持ってサポートしています。
どちらを選択し、ポーリングがLinuxシステム用の標準的な動作モード、kqueueのファイルディスクリプタと操作の効率的なモードを、ある、ファイルディスクリプタが好ましいです。
worker_connectionは、プロセスごとのnginx接続の最大数、デフォルトは1024ですので、接続nginxのmax_client = worker_processes * worker_connectionsの最大数を設定されています。
開いているファイルのシステム制限の最大数によって接続されたプロセスの最大数は、あなたが設定する必要はulimitを。
* /
#次のセクションでは、nginxのhttpサーバの設定に関する属性であります
HTTP {
mime.typesを含め、マスターコマンドモジュールは、設定ファイルの複雑さは、どこか別の場所に提供されている部分に対応する、設定ファイル、縮小マスターの設定ファイルが含まれているし、それを含め、それを簡単なメインの設定ファイルを保ちます
default_type application / octet-streamと、デフォルトのファイル・タイプ時間は、そのような使用に設定すると、ファイルの種類が定義されていません。
メイン#log_format '$ REMOTE_ADDR - $ REMOTE_USER [$ time_local] "$依頼"' ログ形式のnginxを指定
# '$ステータスの$ body_bytes_sent "$ HTTP_REFERER"'
# ' "$ HTTP_USER_AGENT" "$ HTTP_X_FORWARDED_FOR"';
メインのaccess.log #access_logログ/。
sendfileの上、ユーザーとデータバッファ間のデータのコピーを避けるために、効率的なファイル転送モード(ゼロコピーモード)、カーネルバッファを開きます。
上#tcp_nopush;オープンTCP_NOPUSHソケット(開くSENDFILE場合に有用)
クライアントの接続時間; 0 #keepalive_timeout
keepalive_timeout 65;
有効または無効にgzipのモジュールと、上の#gzip
#以下は、仮想ホストサーバセグメントの構成です
サーバー{
80耳を傾け、ホスティングサーバポート
サーバー名はlocalhost、IPまたはドメイン名は、カンマで区切られたドメイン名を複数指定するために使用されます
#charset KOI8-R。
位置/ {
#住所マッチングセット、定期的に試合をサポートし、またここでは、条件付きの試合をサポートし、デフォルトの要求アドレスで、ユーザーは、動的および静的なページのろ過処理locationコマンドをnginxのことができます
ルートHTML、仮想ホストのWebルートディレクトリ
インデックスのindex.html index.htmを、デフォルトのホーム・ページ・ファイルへのアクセス
}
#error_page 404 /404.html。
#静的ページ/50x.htmlにサーバーエラーページにリダイレクト
error_page 500 502 503 504 /50x.html。
位置= /50x.html {
ルートHTML;
}
}