nginx 設定ファイルは主に 4 つの部分に分かれています。 main{#(グローバル設定) http{#Server upstream{} #(負荷分散サーバー設定: 主に負荷分散と一連のバックエンドサーバーの設定に使用されます) server{ #(ホスト設定: 主にホストとポートを指定するために使用) location{}# (URL マッチング機能の場所の設定) } } } server は main を継承し、location は server を継承し、upstream は他の設定を継承せず、継承されることもありません。 1. メイングローバル構成 実行中のプロセス数、実行中の ID など、実行時に特定のビジネス機能 (HTTP サービスや電子メール サービス プロキシなど) に関連しない nginx の一部のパラメータ。 ユーザー www www; ワーカープロセス 4; ワーカーCPUアフィニティ0001 0010 0100 1000; error_log /var/logs/nginx_error.log クリティカル; pid /usr/local/webserver/nginx/nginx.pid; ワーカー_rlimit_nofile 65535;
2. イベントモジュール イベント{ epoll を使用します。 ワーカー接続 65536; }
3. HTTP サーバー http{ mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; #文字セット gb2312; }
3.1 HTTPパラメータ: クライアントヘッダーキャッシュ サーバー名ハッシュバケットサイズ 128; クライアント_ヘッダー_バッファ_サイズ 32k; ラージクライアントヘッダーバッファ 4 128k; クライアントの最大ボディサイズは10mです。 クライアントボディバッファサイズ 128k; ファイル送信オン; tcp_nopush オン; tcp_nodelay オン; キープアライブタイムアウト65: client_body_timeout 60秒; 送信タイムアウト 60秒;
3.2 HTTPパラメータとFastCGIパラメータ FastCGI 関連のパラメータは、Web サイトのパフォーマンスを向上させるために設計されており、リソースの使用量を削減し、アクセス速度を向上させます。以下のパラメータは文字通りに理解できます。 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; fastcgi_cache テスト; fastcgi_cache_path /usr/local/nginx/fastcgi_cache レベル=1:2 キー_ゾーン=TEST:10m 非アクティブ=5m; fastcgi_cache_valid 200 302 1時間; fastcgi_cache_valid 301 1d; fastcgi_cache_valid 任意の 1m;
3.3. HTTPパラメータgzipモジュール設定 gzip オン; gzip_min_length 1k; gzip_バッファ 4 16k; gzip_http_バージョン1.1; gzip_comp_レベル6; gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml; gzip_vary オン;
4. nginxは仮想ホストを設定します 4.1 仮想ホストの設定プロセス
http サービスではいくつかの仮想ホストがサポートされています。各仮想ホストには対応するサーバー構成項目があり、その中に仮想ホストに関連する構成が含まれています。メールサービスプロキシを提供する場合は、複数のサーバーを構築することもできます。各サーバーは、リスニング アドレスまたはポートによって区別されます。 サーバ{ listen 80 デフォルト; サーバー名_; インデックス index.html index.htm index.php; ルート /data/htdocs/www; #server_name_in_redirect オフ; 場所 ~ .*\.(php|php5)?${ #fastcgi_pass unix:/tmp/php-cgi.sock; 127.0.0.1:9000; をデフォルトとして設定します。 fastcgi_index インデックス.php; fcgi.conf をインクルードします。 } 場所 ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${ 有効期限は30日です。 } 場所 ~ .*\.(js|css)?${ 1時間で期限切れになります。 } }
4.2 サーバーモジュールの下にロケーションモジュールを書く ロケーションマッチングルールの書き方の詳細については、nginxシリーズ「負荷分散のためのnginxの使用」を参照してください。 リクエストは、上流のロードバランサーに対応するバックエンド、つまりリバースプロキシによって定義されたサーバーリストにリダイレクトされます。 proxy_redirect オフ; proxy_set_header ホスト $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 5. その他のnginxパラメータ 5.1 アクセス制御の許可/拒否 Nginx のアクセス制御モジュールはデフォルトでインストールされており、記述も非常に簡単です。特定の IP または IP セグメントへのアクセスを許可または拒否する複数の許可ルールと拒否ルールを設定できます。いずれかのルールが満たされると、マッチングは停止します。のように: 場所 /nginx-status { stub_status オン; access_log オフ; # auth_basic "NginxStatus"; # auth_basic_user_file /usr/local/nginx-1.6/htpasswd; 192.168.10.100 を許可します。 172.29.73.0/24 を許可します。 すべてを否定する; } アクセス パスのログイン パスワードを設定するために、httpd-devel ツール htpasswd を使用することもよくあります。 # htpasswd -c htpasswd 管理者 新しいパスワード: 新しいパスワードを再入力してください: ユーザー管理者のパスワードの追加 # htpasswd htpasswd admin //管理者パスワードを変更する # htpasswd htpasswd sean //別の認証ユーザーを追加する これにより、デフォルトで CRYPT を使用して暗号化されたパスワード ファイルが生成されます。上記の nginx-status の 2 行のコメントを開き、nginx を再起動して有効にします。 5.2 リストディレクトリの自動インデックス デフォルトでは、Nginx はディレクトリ全体のリスト表示を許可しません。この機能を使用するには、nginx.conf ファイルを開き、location、server、または http セクションに次のパラメータを追加します。 場所 /画像 { ルート /var/www/nginx-default/images; 自動インデックスオン; autoindex_exact_size をオフ; autoindex_localtime をオン; }
VI. 付録: 一般的な設定ファイル ユーザー www www; ワーカープロセス 2; error_log ログ/error.log; #error_log ログ/error.log 通知; #error_log ログ/error.log 情報; pid ログ/nginx.pid; イベント { epoll を使用します。 ワーカー接続数 2048; } http { mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log ログ/access.log メイン; ファイル送信オン; # tcp_nopush オン; キープアライブタイムアウト65; # gzip 圧縮機能を gzip オンに設定します。 gzip_min_length 1k; gzip_バッファ 4 16k; gzip_http_バージョン1.1; gzip_comp_レベル6; gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml; gzip_vary オン; # http_proxy は client_max_body_size を 10m に設定します。 クライアントボディバッファサイズ 128k; プロキシ接続タイムアウト 75; プロキシ送信タイムアウト 75; プロキシ読み取りタイムアウト 75; プロキシバッファサイズ 4k; プロキシバッファ 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_temp_path /usr/local/nginx/proxy_temp 1 2; # 負荷分散バックエンドサーバーリストを設定するアップストリームバックエンド{ #ip_ハッシュ; サーバー 192.168.10.100:8080 max_fails=2 fail_timeout=30s ; サーバー 192.168.10.101:8080 max_fails=2 fail_timeout=30s ; } # 非常に重要な仮想ホスト構成。複数の仮想マシンがこの部分をコピーして変更できる。サーバー{ 聞く 80; サーバー名 test.example.com; ルート /apps/oaapp; 文字セット utf-8; access_log ログ/host.access.log メイン; #すべて / 負荷分散 + リバースプロキシの場所 / { ルート /apps/oaapp; インデックス index.php index.html index.htm; proxy_pass http://backend; proxy_redirect オフ; # バックエンドWebサーバーはX-Forwarded-Forを通じてユーザーの実際のIPを取得できる proxy_set_header ホスト $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream エラー タイムアウト invalid_header http_500 http_502 http_503 http_504; } #静的ファイル、nginx はバックエンドにアクセスしてバックエンドサービスの場所を要求せずに、それらを自身で処理します ~* /download/ { ルート /data/app/nginx/downloads; } 場所 ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { ルート /data/app/nginx/images; 有効期限は7日です。 } 場所 /nginx_status { stub_status オン; access_log オフ; 192.168.10.0/24 を許可します。 すべてを否定する; } 場所 ~ ^/(WEB-INF)/ { すべてを否定する; } #エラーページ 404 /404.html; # サーバーのエラーページを静的ページ /50x.html にリダイレクトします # エラーページ 500 502 503 504 /50x.html; 場所 = /50x.html { ルートhtml; } } } VI. 付録: gzip 圧縮が有効になっているかどうかを確認する方法
接続:キープアライブ コンテンツエンコーディング:gzip コンテンツタイプ:text/html 日付: 2017 年 3 月 29 日水曜日 10:55:54 GMT ETag:W/"58db92af-331a6" 最終更新日: 2017年3月29日水曜日 10:55:43 GMT サーバー:nginx/1.10.3 転送エンコーディング: チャンク 変化:Accept-Encoding 参照ドキュメント 完全な構成例 nginx 設定ファイルの詳細な解釈に関するこの記事はこれで終わりです。より関連性の高い nginx 設定ファイルの内容については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
1. 疑似クラスを使用して境界線の半分を表示する <!DOCTYPE html> <...
ロックの分類:データ操作の粒度から:テーブルロック:操作時にテーブル全体がロックされます。行ロック:...
目次序文作成手順CentOSベースイメージを作成するコンテナを作成してカスタマイズするカスタムコンテ...
目次1. 上の写真2. ユーザーが存在しない3. コードをアップロードする1. 上の写真 2. ユー...
この記事ではvueを使用し、マウスクリックイベントといくつかの小さなページの最適化を追加します。 基...
Vueはブール値でストレージを保存します今日、問題に遭遇しました。バックグラウンドから返された真偽の...
この記事では、デジタル時計効果を実現するためのJavaScriptの具体的なコードを参考までに紹介し...
参考: Docker 公式 Redis ドキュメント1. 特別なバージョン要件がある場合は、redi...
Linux での Tomcat の起動とシャットダウンLinux システムでは、コマンド操作を使用し...
ウェブサイトのデザインを編集または変更する必要がある場合、CSS が重要な役割を果たします。 CSS...
1. haslayout と bfc は IE 固有の標準属性です。 2. BFC はページ上の分離...
1.MySQLレプリケーションの概念これは、プライマリ データベースの DDL および DML 操作...
1. AデータベースとBデータベースの同期ステータスを確認する次のコマンドを入力すると多くの情報が表...
順序付きリストXML/HTML コードコンテンツをクリップボードにコピー<オルタイプ= &qu...
Line-height はどのように継承されますか?30px などの特定の値を書き込むと、この値が継...