#ユーザーグループが、あなたはまた、rootユーザーを使用することができます 誰も#USER、 サーバのコア数と一致して#が worker_processes 1 ; #error_logのログ/ error.logに、 #error_logログ/ error.logに注意してください。 #error_logログ/ error.logに情報; #プロセス数字格納されたアドレス #PIDログ/ nginx.pid; イベント{ worker_connections 1024 ; } HTTP { MIMEを含める。タイプ; default_typeファイルアプリケーション / OCTET -解釈されないストリーム; #のログ形式のメインアクセスアドレス、時間、ブラウザ情報 #log_formatメイン「$ REMOTE_ADDR - $ REMOTE_USER [$ time_local] " $要求"「 #「$ステータスの$ body_bytes_sent "$ HTTP_REFERER" " ;# ' "$ HTTP_X_FORWARDED_FOR" "$ HTTP_USER_AGENT"' 別のサーバに配置することができる。#グローバルログ格納されたアドレス、 #access_logログ/ access.logを主; のsendfile ON; #のON TCP_NOPUSH; 0 #keepalive_timeout keepalive_timeout 65 ; #GZIP ON; サーバー{ #リスニングポート を聞く 80 ; #サービス名 サーバー名はlocalhost; #文字セットKOI8-R; #access_logログ/ host.access.logメイン; #ブロックルールを、ジャンプアドレスブロック LOCATION /インデックス .htmlを { ルートHTML; インデックス インデックス。HTM; } #error_page 404 /404.html。 #静的ページ/50x.htmlにリダイレクトサーバーエラーページ #の error_page 500 502 503 504 / 50X。HTML; 位置 = / 50X。HTML { ルートHTML。 } #のプロキシ127.0.0.1:80上のApacheのリスニングにPHPスクリプト # #location〜\ .phpの$ { #proxy_pass http://127.0.0.1。 #} #は127.0.0.1:9000でのFastCGIサーバのリスニングにPHPスクリプトを渡す # #location〜\ .phpの$ { #ルートのhtml; #fastcgi_pass 127.0.0.1:9000。 #fastcgi_index index.phpを。 #fastcgi_paramのSCRIPT_FILENAME /スクリプト$ fastcgi_script_name。 #fastcgi_paramsが含まれます。 #} #は、Apacheのドキュメントルートの場合は、.htaccessファイルへのアクセスを拒否 #の同意nginxのの1と # #location〜/\.ht { #はすべて拒否します。 #} } #IP-の混合物を使用して、別の仮想ホスト名- 、およびポートベースの構成 # #server { #ルートHTML。 #8000を聞きます。 #somenameの聞く:8080; #SERVER_NAME somenameの別名another.alias。 #位置/ { #ルートHTML。 #インデックスのindex.html index.htmを。 #} #} #HTTPSサーバ #1 の#server { #443 SSLを聞きます。 #サーバー名はlocalhost。 #ssl_certificateのcert.pem。 #ssl_certificate_keyのcert.key。 #ssl_session_cache共有:SSL:1メートル。 #ssl_session_timeout 5メートル。 #のssl_ciphers HIGH:aNULL:MD5;! #ssl_prefer_server_ciphers上。 #位置/ { #インデックスのindex.htmlのindex.htm。 #} #} }
ログの分割
私たちの実践的なアプリケーション、1つのファイルにすべてのログが、我々は分割の必要性を分析することが便利でない場合は、分析をログに記録することがあります
#ユーザnobody。 worker_processes 1 ; #error_logのログ/ error.logに。 #error_logログ/ error.logに予告。 #error_logログ/ error.logに情報; #pidログ/ nginx.pid。 イベント{ worker_connections 1024 。 } HTTP { MIMEを含みます。タイプ; default_typeアプリケーション / octet- ストリーム。 LOG_FORMATメイン ' REMOTE_ADDR $ - $ REMOTE_USER [$ time_local] "$依頼" ' ' $ステータスの$ body_bytes_sent "$ HTTP_REFERER" ' " "$ HTTP_USER_AGENT"」" ; #access_logのログ/ access.logをメイン; sendfile; keepalive_timeout 65 ; サーバー{ 聞く 80 。 サーバー名はlocalhost。 もし($ time_iso8601〜" (\ D {2}):(\ D - (\ D {2}) - (\ D {2})T(\ D {2})^(\ D {4}) {2})" ){ 設定$年間 $ 1 。 設定$月 $ 2 。 セット$日 $ 3 。 セット$の時間$ 4 ; セット$分 $ 5 。 設定$秒 $ 6 。 } access_logのログ / $年 - $月 - $日 - $時間 - $分 - $秒 -access。ログ メイン; 位置 / { ルートHTML。 インデックス インデックス .htmlのインデックス。HTM; } error_page 500 502 503 504 / 50X。HTML; 位置 = / 50X。HTML { ルートHTML。 } } }
上記の構成は、2番目のログを生成するように構成されてテストするには、開いているフォルダのログのすべての権利に注意を払う、毎日のニーズに応じて変更することができ、または許可エラーなしで生産する文書に報告することができます
リバースプロキシ
リバースプロキシを理解する前に、我々はフォワードプロキシが何であるかを理解する必要があります
フォワードプロキシエージェントクライアントは、サーバはクライアントとオリジンサーバの間に配置され、クライアントは、プロキシサーバーへの要求、転送、プロキシサーバーオリジンサーバにリクエストを送信します。
リバースプロキシは、プロキシサーバ、バックエンドプロセッサ事業に分配特定の規則に従って、クライアントはnginxのを受け取った後、要求を送信し、分散展開を達成することです。
このセクションのリバースプロキシの設定一般的構成サーバ{}。
ロケーション
位置=パターン{}正確に一致
位置/パターン{}一般的なマッチ
位置〜パターン{}正規一致
サンプル:リライト
{サーバー 聞く 1234 ; SERVER_NAME 10.32。16.195 ; LOCATION / グッズ{ #のアクセスアドレスは、正規表現がリダイレクト一致 リライト" グッズ- {\ D [1,5]} \ HTML。" /製品-Ctrlキー。HTML、 根HTML; インデックス試験。HTML; } }
サンプル:プロキシ
LOCATION / springboot { #本当のIPを渡すヘッダ proxy_set_header X-のReal-IP- $ REMOTE_ADDR proxy_pass HTTP:// 10.32。16.179:8089 ;
}
例:静的リソースの割り当て
。。〜* \場所(JS | CSS | JPG | JPEG | GIF | PNG | ICO | PDF | TXT)$ { proxy_passます。http:// 10.32。16.179:8089 ; }
ロードバランシング
三つの方法:ポーリング(デフォルト)、重量、ip_hash
ポーリング:
ngnix順次背景に要求を送信します
上流tomcatserver1 { サーバー192.168。72.49:8080 ; サーバー192.168。72.49:8081 ; } サーバー{ 聞く 80 。 SERVER_NAME 8080 .MAX。COM; #文字セットKOI8-R。 #access_logログ/ host.access.logメイン。 位置/ { proxy_passのhttp:// tomcatserver1。 インデックス インデックス .htmlのインデックス。HTM; } }
重量:
ダウン:ロード・バランシングに参加しません
重量:重量負荷も大きく、より大きな
max_fails:最大要求のエラー頻度は、エラー復帰ブロックproxy_next_upstreamによって定義された値を超えます
fail_timeout:max_fails以上の後、休止時間
バックアップ:その他のすべての非バックアップマシン忙しく、それを要求し、このマシンの最小圧力
上流myServerという{ サーバー192.168。72.49:9090 ダウン。 サーバー192.168。72.49:8080 重量= 2 max_fails = 2 fail_timeout = 30 。 サーバー192.168。72.49:7070 バックアップ。 }
ip_hash
それぞれの要求は、バックエンドサービスにアクセスするには、各訪問者が、このアプローチは、セッション共有を解決するが、厳密には、負荷分散属していない、とTomcatがハングアップした場合ことを確認するために、固定、IPのハッシュ値に応じて割り当てられます、このサーバーのすべてのユーザーが再度再署名します。
ほとんどのプロジェクトは現在、セッション共有の問題を回避するために、JWTを使用している、それはまだ重量モードが優れている使用しています。
上流tomcatserver1 {
ip_hash。 サーバー192.168。72.49:8080 ; サーバー192.168。72.49:8081 ; }