웹 서비스의 Nginx 역방향 에이전트 와 부하 균형

대리
정방 향 에이전트:
   정방 향 프 록 시 는 클 라 이언 트 와 대상 서버 사이 에 있 는 서버 입 니 다. 대상 서버 에서 내용 을 얻 기 위해 클 라 이언 트 는 프 록 시 에 요청 을 보 내 고 대상 서버 를 지정 한 다음 에 프 록 시 는 대상 서버 에 요청 을 전달 하고 얻 은 내용 을 클 라 이언 트 에 게 되 돌려 줍 니 다.클 라 이언 트 는 특별한 설정 을 해 야 정방 향 대 리 를 사용 할 수 있 습 니 다.
역할:
  • 접근 할 수 없 는 서버 에 접근 (×××,알다
  • 대상 서버 접근 가속 화 (링크 가속)
  • 캐 시 캐 시 (접근 가속)
  • 클 라 이언 트 방문 권한 부여 실현
  • 방문 자 숨 기기
  • 역방향 에이전트:
    역방향 프 록 시 (Reverse Proxy) 방식 은 프 록 시 서버 로 인터넷 의 연결 요청 을 받 은 다음 내부 네트워크 에 있 는 서버 에 전송 요청 을 하고 서버 에서 얻 은 결 과 를 인터넷 에서 연결 을 요청 한 클 라 이언 트 에 게 되 돌려 주 는 것 을 말한다. 이때 프 록 시 서 비 스 는 대외 적 으로 하나의 서버 로 나타난다.
    역할:
  • 보호 상자 에 원본 자원 서버 숨 기기
  • 부하 균형 실현
  • 투명 에이전트
  • 2. Nginx 역방향 대리
    1. HTTP 프 록 시 모듈
     Nginx 의 HTTP 프 록 시 모듈 은 HTTP Proxy 입 니 다.
    http://www.howtocn.org/nginx:nginx%E6%A8%A1%E5%9D%97%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%E4%B8%AD%E6%96%87%E7%89%88:standardhttpmodules:httpproxy#proxy_pass
       이 모듈 은 다른 서버 에 요청 을 전송 할 수 있 습 니 다.   HTTP / 1.0 은 keepalive 를 사용 할 수 없습니다. (백 엔 드 서버 는 모든 요청 에 연결 을 만 들 고 삭제 합 니 다.)nginx 는 브 라 우 저 에 HTTP / 1.1 을 보 내 고 백 엔 드 서버 에 HTTP / 1.0 을 보 내 면 브 라 우 저 에 keepalive 를 처리 할 수 있 습 니 다.
       http proxy 모듈 (심지어 FastCGI) 을 사용 하면 모든 연결 요청 이 백 엔 드 서버 로 전송 되 기 전에 nginx 에서 캐 시 되 므 로 백 엔 드 에서 전 송 된 데 이 터 를 측정 할 때 진행 상태 가 올 바 르 지 않 을 수 있 습 니 다.
       프 록 시 모듈 의 기능 이 매우 강하 고 명령 이 매우 많다.
       여 기 는 proxy 에 만 관심 이 있 습 니 다.pass 와 proxyset_header
    location / {
      proxy_pass        http://localhost:8000;
                    #    :location, location  if  
      proxy_set_header  X-Real-IP  $remote_addr;
                    #                 ,          ip
                    #                              ,           ip
    }
    # :   httpd                        ip      
    #  :LogFormat "%h %l %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    # :LogFormat "%{X-Real-IP}i %l %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

    2. 부하 균형
       부하 균형 도 역방향 프 록 시 로 이 루어 집 니 다. 프 록 시 대상 서버 만 한 그룹 입 니 다.그리고 부하 균형 스케줄 링 알고리즘 을 통 해 서로 다른 업무 수요 에 따라 요 구 를 처리한다.
       Nginx 는 Upstream 모듈 을 통 해 부하 균형 을 실현 하고 대상 서버 그룹 을 정의 하 며 스케줄 링 알고리즘 을 설정 합 니 다.
    upstream backend {
      round-robin;
            #    
      server   backend1.example.com weight=5;
            #       ,   1(   ip_hash      )
      server   backend2.example.com :8080;
            #     
      server   backend3.example.com  down;
            #down -            ,   ip_hash    。
            #backup - (0.6.7   )                 ,       (   ip_hash      )。
      server   backend4.example.com  max_fails=3  fail_timeout=30s;
            #max_fails -       (fail_timeout  )            ,   1,     0      
            #fail_timeout - max_fails    ,       ,   10s
      server   unix:/tmp/backend5;
            #     Unix socket    。
    }
    server {
      location / {
        proxy_pass  http://backend;
            #    
      }
    }
    #    
    1.round-robin   (  ):                      ,           ,         ,         。Weight       ,Weight   ,          ,                   。
    2.ip_hash :       IP hash    ,       IP              ,            session    。
    3.fair :                。                           ,                    ,          。Nginx      fair ,            ,    Nginx upstream_fair  。
    4.url_hash :      url hash       ,   url           ,                 。Nginx      url_hash ,            ,    Nginx  hash   。

    좋은 웹페이지 즐겨찾기