nginxの学習(IIコンフィギュレーション・ファイル)

ユーザーグループが、あなたはまた、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.3216.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.3216.1798089 ; 
}

例:静的リソースの割り当て

。。〜* \場所(JS | CSS | JPG | JPEG | GIF | PNG | ICO | PDF | TXT)$ { 
  proxy_passます。http:// 10.3216.1798089 ; 
}  

ロードバランシング

三つの方法:ポーリング(デフォルト)、重量、ip_hash

ポーリング:

ngnix順次背景に要求を送信します

上流tomcatserver1 {   
    サーバー192.16872.498080 ;  
    サーバー192.16872.498081 ;  
    }    
  
 サーバー{   
        聞く       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.16872.499090 ダウン。   
    サーバー192.16872.498080  重量= 2 max_fails = 2 fail_timeout = 30   
    サーバー192.16872.497070 バックアップ。   
}

ip_hash

それぞれの要求は、バックエンドサービスにアクセスするには、各訪問者が、このアプローチは、セッション共有を解決するが、厳密には、負荷分散属していない、とTomcatがハングアップした場合ことを確認するために、固定、IPのハッシュ値に応じて割り当てられます、このサーバーのすべてのユーザーが再度再署名します。

ほとんどのプロジェクトは現在、セッション共有の問題を回避するために、JWTを使用している、それはまだ重量モードが優れている使用しています。

上流tomcatserver1 { 
  ip_hash。   サーバー
192.16872.498080 ;   サーバー192.16872.498081 ; }

 

おすすめ

転載: www.cnblogs.com/Unlimited-Blade-Works/p/12599694.html