nginx 역방향 에이전트 설정 상세 설명

11318 단어
역방향 에이전트 설정
배치 디 렉 터 리 아래 conf 하위 디 렉 터 리 의 nginx. conf 파일 (예: / opt / nginx / conf / nginx. conf) 내용 을 수정 하여 관련 설정 을 조정 할 수 있 습 니 다.
기본 설정 에 있 는 설명 내용 을 삭제 합 니 다.
grep -v "#" /opt/nginx/conf/nginx.conf > /opt/nginx/conf/nginx.confbak
원래 의 설정 변경 이름 을 백업 합 니 다. 뒤에 설명 내용 이 없 는 nginx. confbak 변경 이름 은 nginx. conf 입 니 다.
역방향 프 록 시 설정 예제:
#  Nginx         
user nginx nginx;

#nginx   ,       CPU    
worker_processes  1;

#          ,[ debug | info | notice | warn | error | crit ]
error_log logs/error.log info;

#    
pid run/nginx/nginx.pid;

#  nginx              ,             (    ulimit -n) nginx     ,  nginx        ,     ulimit -n      。
worker_rlimit_nofile 65535;


#          
events {
    #use epoll;
    #      ,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; 
epoll   Linux 2.6             I/O  ,    FreeBSD  , 
 kqueue  。window    。
    :
 apache  ,nginx         ,        。
A)      
Select、poll        ,               ,nginx   select poll
B)      
Kqueue:   FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0   MacOS X.       MacOS X    kqueue         。
Epoll:   Linux  2.6        。
/dev/poll:   Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+   Tru64 UNIX 5.1A+。
Eventport:   Solaris 10。              ,          。
      
      
      #         (     =   *   )
    worker_connections  4000;
}

#  http   
http {
    #  Nginx    
    server_tokens off;
    server_tokens         404    Nginx      。        ,
      ×××          Nginx     ,    nginx.conf http    server_tokens off  。
    
    include       mime.types;#             
    default_type  application/octet-stream;#      
    #charset utf-8; #    
    server_names_hash_bucket_size 128; #      hash   
    client_header_buffer_size 32k; #        

    
    
    #access        
    #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  logs/access.log  main;
    
    autoindex off;#           on,       ,    。
    
    #         
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'
                       '$upstream_addr $upstream_response_time $request_time ';
    log_format log404 '$status [$time_local] $remote_addr $host$request_uri $sent_http_location';
    
            :
     $remote_addr $http_x_forwarded_for        ip  ;
     $remote_user:           ;
     $time_local:            ;
     $request:        url http  ;
     $status:         ;   200,
     $body_bytes_sent :                ;
     $http_referer:                ;
     $http_user_agent:            ;
       web            ,           IP   ,  $remote_add 
       IP           iP  。             http    ,  
       x_forwarded_for  ,          IP                 。
    
    
    access_log  logs/nginx/access.log main;
    access_log  logs/host.access.404.log  log404;
       log_format           ,   access_log             ;
    
    sendfile  on; #          ,sendfile    nginx    sendfile  
         ,         on,             IO     ,   
     off,        I/O    ,       。  :           
        off。
    #tcp_nopush on; #      
    #tcp_nodelay on; #      
    
    keepalive_timeout  65; ##      keep-alive      。                 。           ngnix    
         ,    
    client_header_timeout 10;  
    client_body_timeout 10;    #             ,   60s  
    reset_timedout_connection on; #          ,  nginx       ,  socket       
    send_timeout 10;     #            .           ,                   ,   60s   
    client_header_timeout  client_body_timeout #         (  )     。            。
    
    #FastCGI              :      ,      。       
          ,     
    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;
 
    #gzip    
    gzip on; #  gzip    
    gzip_min_length 1k; #         
    gzip_buffers 4 16k; #      
    gzip_http_version 1.0; #    (  1.1,     squid2.5   1.0) 
    gzip_comp_level 2; #     
    gzip_types text/plain application/x-javascript text/css application/xml;
        
    #    ,       textml,          ,         ,      warn。
    gzip_vary on; 
    #limit_zone crawler $binary_remote_addr 10m; #    IP          
    
    
   #        
    server {
        listen       80;#   80  
        
        #       ,     
        server_name  10.40.50.52;
        
        #client_header_buffer_size 4k;             。        
                 ,               1k,         
             1k,           。         getconf PAGESIZE 
         。
        
        large_client_header_buffers 4 128k;          。nginx   
         client_header_buffer_size  buffer   header ,  header  ,  
          large_client_header_buffers   。
        
        client_max_body_size 300m; #                (            
                     nginx     ,        ,      nginx    
          。    413 Request Entity Too Large)
        
        client_body_buffer_size 128k; #                  
        
        proxy_connect_timeout 600; #nginx            (      ,   )
        
        proxy_read_timeout 600; #     ,         (      ,   )
        
        proxy_send_timeout 600; #           (      ,   )
        
        proxy_buffer_size 64k; #       (nginx)             
        
        proxy_buffers   4 32k; #proxy_buffers   ,     32k    ,
            
        proxy_busy_buffers_size 64k; #        (proxy_buffers*2)
        
        proxy_temp_file_write_size 64k; #         ,     , 
         upstream    
        
——————————————————————————————————————————————————————————        
#proxy_buffers 4 256k;
#        (        )         ,          ,      
#      4k  8k
 
#proxy_busy_buffers_size 256k;
 
#proxy_temp_file_write_size 256k;
#     proxy_temp_path      ,                  
        
#proxy_temp_path /data0/proxy_temp_dir;
#proxy_temp_path proxy_cache_path            

#proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
#           200MB,1             ,         30GB。

#client_body_buffer_size 512k;
#             ,  256k,  ,    firefox  IE   ,      
 256k   ,    。       ,     client_body_buffer_size  ,     
         ,8k  16k,      。
#    firefox4.0  IE8.0,       ,200k     ,   500 Internal Server
 Error  
 
#proxy_intercept_errors on;
#   nginx  HTTP     400       。
——————————————————————————————————————————————————————————

#    Nginx     
        location /nginxstatus{
                stub_status on;
                access_log on;
                auth_basic "nginxstatus";
                auth_basic_user_file htpasswd;
                #htpasswd        apache   htpasswd     。
        }
        
————————————————————————————————————————————————————————————————————        
      
Active connections:            .
Server accepts handled requests: Nginx     655   ,    655   (     
    ),     1985   .
Reading: Nginx        Header   .
Writing: Nginx        Header   .
Waiting:   keep-alive    ,      active – (reading + writing),    
Nginx      ,                .
  ,      ,             ,Waiting        .  reading +writing
   ,           ,       .        
————————————————————————————————————————————————————————————————————

#hone  
        location /hone {
           index  index.html index.htm index.jsp;
           proxy_pass      http://11.33.22.56:8080/hone;
           proxy_set_header X-Real-IP $remote_addr;    #        IP
           proxy_set_header REMOTE-HOST $remote_addr;  #             
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #         ip
           proxy_set_header Host $host:$server_port;
        }

#    
        location /GR133 {
           index  index.html index.htm index.jsp;
           proxy_pass  http://192.168.133.12:8585/GR133;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Host $host:$server_port;
        }
        location /GR133File {
           index  index.html index.htm index.jsp;
           proxy_pass  http://192.168.133.12:8585/GR133File;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header Host $host:$server_port;
        }

        #           
        location ~ ^/(WEB-INF|META-INF)/{  
           deny all;  
        }
                
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    
    include /opt/nginx/conf/vhost/*.conf;  #        
}

분석:
1.proxy_set_header X-real-ip $remote_addr;
        web           ip, $remote_addr      X-Real-IP ,
      ,$remote_addr       ip,          
          IP,        IP;
remote_addr     IP  

remote_host           




  ,           ip,         ,       。

2.proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         X-Forwarded-For  ,    squid   ,      HTTP       
   IP     Web           rfc  ,    X-Forwarded-For    ,   
 proxy       ,    client1, proxy1, proxy2,         ,     rfc 
 ,        ,      ,        proxy     ,          
 proxy  ip 。              request.getAttribute("X-Forwarded-For")   
    ip,                 ip,       nginx      :
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

       $proxy_add_x_forwarded_for X-Forwarded-For  ,     ,     , 
      X-Forwarded-For    ,       X-Forwarded-For     
$proxy_add_x_forwarded_for  ,         nginx    ip ,          ,
      web      request.getAttribute("X-Forwarded-For")         ip  
  nginx ip。

  $proxy_add_x_forwarded_for    ?
$proxy_add_x_forwarded_for            "X-Forwarded-For", $remote_addr   ,
         。

    ,   web  ,         nginx  ,www.linuxidc.com      web  
  nginx:
    nginx ,  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   $proxy_add_x_forwarded_for   "X-Forwarded-For"     ,    $remote_addr, 
$remote_addr      ip,      ,X-Forwarded-For            ip   。
     nginx,  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   $proxy_add_x_forwarded_for  ,X-Forwarded-For           ip,$remote_addr
        nginx ip  ,             X-Forwarded-For      “  
   ip,   nginx ip”,       。
          $http_x_forwarded_for  ,      X-Forwarded-For,       
 ,     X-Forwarded-For    ,         proxy_set_header X-Forwarded-For $http_x_forwarded_for 
   ,web      request.getAttribute("X-Forwarded-For")     null。      
request.getAttribute("X-Forwarded-For")    ip,      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           ip。

/ opt / nginx / 디 렉 터 리 에 htpasswd 파일 만 들 기:
htpasswd 명령 으로 사용자 추가 
htpasswd -bc conf/htpasswd nginx usernginx19

/ opt / nginx / conf 디 렉 터 리 에 passwd 파일 을 만 듭 니 다. 사용자 이름 nginx, 비밀번호: usernginx 19, 기본적으로 MD5 암호 화 방식 을 사용 합 니 다.
다음으로 전송:https://blog.51cto.com/meiling/1978482

좋은 웹페이지 즐겨찾기