6.NRBC-server仮想ホストモジュール

6654 ワード

server仮想ホストモジュール
serverモジュールはhttpモジュールに配置する必要があります。
http {
    server {  
        #     80  
        listen 80;   
        #    dh.com;  
        server_name dh.com www.dh.com;
        access_log logs/sever.log combined;
        location / {
            #      ,         
            #     ,  nginx   。          
            root /data/dh;  

            #      index.html    
            index index.html;
            #                  
            #random_index on;
        }  
    }
}
一般的な設定
  • listen[PORT]
    #                
    ##          
    listen 80 default_server;
    
  • server_name[name...]仮想ホストの名前。複数のスペースを追加できます。正規表現の優先度にマッチすることもできます。
  • 精確マッチング:
    server_name daiadrian.github.io
    
  • 左*ワイルドカード:
    server_name *.github.io
    
  • 右側*ワイルドカード:
    server_name daiadrian.github.*
    
  • 正規表現:
    server_name ~^.*\.github\.io$
    
  • default_server
  • tcp_nodelay[on|off]
  • offは、1つのセッションに複数の要求がある場合、結合してから
  • を送信する遅延送信を意味する。
  • onは、遅延せずに送信することを指し、一つの要求が来たら、一つの
  • を処理する。
    一般的にユーザー体験のためにonに設定したほうがいいです。サーバーのリソースをよりよく利用するためにオフに設定できます。
  • server_tokens[on_off_build_string]がレスポンスメッセージのserverヘッダにnginxバージョン
    HTTP/1.1 304 Not Modified
    Server: nginx/1.15.7
    Date: Thu, 09 May 2019 03:33:04 GMT
    Last-Modified: Tue, 09 Apr 2019 14:26:15 GMT
    
       on,  server   nginx  
          off            string   
    (string      )
    
  • を表示しているかどうか
  • error_page code=[respnse]uriはエラーページを定義し、指定された応答状態コードで応答することができる
    error_page 404 /404.html
    # =200     404   ,             200   
    ##          ,    360       404       360   404   
    error_page 404 =200 /404.html
    
    location = /404.html {
        alias /web/error;
    }
    

  • アクセスログの設定
    通常、ウェブサーバは逆プロキシの後に置かれており、これではお客様のIPアドレスを取得できなくなります。$remote_addで取得したIPアドレスは逆プロキシのiPアドレスです。
    逆プロキシサーバは、転送要求のhttpヘッダ情報において、既存のクライアントのIPアドレスと元のクライアントの要求のサーバアドレスを記録するためのx_forwarded_for情報を追加することができる。
    #      
    log_format combined '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" $http_x_forwarded_for';
    
    #            
    access_log  /usr/local/nginx/logs/host.access.log  main;
    access_log  /usr/local/nginx/logs/host.access.404.log  log404;
    
  • $remote_addrは、$http_x_forwarded_forとともにクライアントのipアドレス
  • を記録するために使用される。
  • $remote_user:クライアントユーザ名
  • を記録するために使用される。
  • $time_local:アクセス時間とタイムゾーン
  • を記録するために使用されます。
  • $request:要求を記録するためのurlとhttpプロトコル
  • $status:要求状態を記録するために使用される。成功は200
  • です。
  • $body_bytes_sent:クライアントファイル本体に送信されたコンテンツサイズ
  • を記録する。
  • $http_referer:そのページのリンクからアクセスした
  • を記録するためのものです。
  • $http_user_agent:クライアントブラウザの関連情報を記録する
  • 詳細設定
    http {
        #       
        server {
            #    
            listen 80;
    
            #       ,     
            server_name www.dh.com dh.cn;
            index index.html index.htm index.php;
            root /data/dh;
             
            #        
            location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
            {
                #    
                expires 10d;
            }
             
            #JS CSS      
            location ~ .*.(js|css)?$
            {
                expires 1h;
            }
             
            log_format combined '$remote_addr - $remote_user [$time_local] "$request" '
            '$status $body_bytes_sent "$http_referer" '
            '"$http_user_agent" $http_x_forwarded_for';
             
            #            
            access_log  /usr/local/nginx/logs/host.access.log  main;
            access_log  /usr/local/nginx/logs/host.access.404.log  log404;
             
            #  "/"       
            location / {
                proxy_pass http://127.0.0.1:88;
                proxy_redirect off;
                proxy_set_header X-Real-IP $remote_addr;
                 
                #   Web       X-Forwarded-For      IP
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                 
                #            ,  。
                proxy_set_header Host $host;
    
                #                
                client_max_body_size 10m;
    
                #                  ,
                #             ,  256k,  ,    firefox  IE   ,       256k   ,    。       ,     client_body_buffer_size  ,              ,8k  16k,      。
                #    firefox4.0  IE8.0,       ,200k     ,   500 Internal Server Error  
                client_body_buffer_size 128k;
    
                #   nginx  HTTP     400       。
                proxy_intercept_errors on;
    
                #            _            
                #nginx            (      )
                proxy_connect_timeout 90;
    
                #           (      )
                #           _                       
                proxy_send_timeout 90;
    
                #     ,         (      )
                #     _           _                 (                 )
                proxy_read_timeout 90;
    
                #       (nginx)             
                #                        ,                    ,              proxy_buffers            ,           
                proxy_buffer_size 4k;
    
                #proxy_buffers   ,     32k     
                #        (        )         ,          ,            4k  8k
                proxy_buffers 4 32k;
    
                #        (proxy_buffers*2)
                proxy_busy_buffers_size 64k;
    
                #     proxy_temp_path      ,                  
                #         ,     ,  upstream    
                proxy_temp_file_write_size 64k;
            }
             
             
            #    Nginx     
            location /NginxStatus {
                #    Nginx    
                stub_status on;
                access_log on;
                auth_basic "NginxStatus";
                auth_basic_user_file confpasswd;
                #htpasswd        apache   htpasswd     。
            }
             
            #            
            #  jsp      tomcat resin  
            location ~ .(jsp|jspx|do)?$ {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://127.0.0.1:8080;
            }
             
            #       nginx       tomcat resin
            location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|
            pdf|xls|mp3|wma)$
            {
                #    
                expires 15d; 
            }
             
            location ~ .*.(js|css)?$
            {
                expires 1h;
            }
        }
    }