Go 로 Nginx 에이전트 추가

2869 단어 golang
  • 안내
  • 역방향 대리
  • 부하 균형
  • 폴 링
  • 가중 폴 링
  • 최소 연결
  • iphash
  • 통용 hash
  • 총화
  • 현재 부분의 코드
  • 간단 한 소개
    Nginx 는 고성능 HTTP 서버 와 역방향 프 록 시 서버 입 니 다.
    가장 많이 사용 되 는 두 가지 기능 은 역방향 대리 와 부하 균형 이다.
    역방향 에이전트
    역방향 대 리 는 정방 향 대리 의 반면 이다.
    일반적인 프 록 시 서버 는 사용자 가 자발적으로 설정 해 야 합 니 다. 사용 자 는 자신의 컴퓨터 에 프 록 시 서버 를 설정 하고 연결 하여 자신의 IP 를 숨 길 수 있 고 응용 서버 가 클 라 이언 트 의 IP 주 소 를 모 를 수 있 습 니 다.
    반면 역방향 프 록 시 는 응용 서버 의 프 록 시 로 서버 에 설치 되 어 있 습 니 다. 클 라 이언 트 가 실제로 방문 한 역방향 프 록 시 서버 는 프 록 시 서버 를 반대 방향 으로 실제 응용 서버 에 방문 한 다음 에 얻 은 응답 을 클 라 이언 트 에 전송 합 니 다.
    Nginx 를 사용 하여 역방향 에이 전 트 를 설정 하 는 것 은 매우 간단 합 니 다. 기본 설정 은 다음 과 같 습 니 다.
    upstream web {
      server 127.0.0.1:8081;
    }
    
    server {
      listen 80;
      server_name web.coolcat.com;
    
      location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    
        client_max_body_size 5m;
    
        proxy_pass http://web;
      }
    }

    위의 프로필 에 도 메 인 이름 web.coolcat.com 이 설정 되 어 있 습 니 다. 이 도 메 인 이름 에 대한 모든 요청 은 http://web 에 전 달 됩 니 다.
    설정 upstream 을 통 해 우 리 는 실제 데이터 가 모두 127.0.0.1:8081 에 전송 되 었 다 는 것 을 알 수 있다.
    이렇게 되면 역방향 대 리 를 실현 하 게 된다.
    부하 균형
    부하 균형 과 역방향 대 리 는 분리 할 수 없 으 며, 부하 균형 은 일반적으로 역방향 대 리 를 바탕 으로 한다.
    부하 균형 이란 여러 요청 을 다른 백 엔 드 서버 에 전송 하 는 것 을 말한다.
    upstream web {
      server 127.0.0.1:8081;
    }

    위의 역방향 프 록 시 설정 에 백 엔 드 서버 주소 만 설정 되 어 있 습 니 다. 몇 개 만 더 추가 하면 가장 간단 한 부하 균형 을 이 룰 수 있 습 니 다.
    폴 링
    폴 링 정책 은 순서대로 요청 을 분배 합 니 다.
    upstream web {
      server 192.168.1.1:8081;
      server 192.168.1.2:8081;
    }

    가중 폴 링
    가중 정책 은 비례 에 따라 요청 을 분배 합 니 다.
    upstream web {
      server 192.168.1.1:8081 weight=4;
      server 192.168.1.2:8081 weight=6;
    }

    위의 두 서버 의 방문 확률 은 4, 6 개 입 니 다.
    최소 연결
    최소 연결 은 현재 연결 수가 가장 적은 서버 에 요청 합 니 다.
    upstream web {
      least_conn;
      server 192.168.1.1:8081;
      server 192.168.1.2:8081;
    }

    ip_hash
    같은 IP 에서 온 연결 은 같은 서버 에 배 치 됩 니 다. 보통 에 사 용 됩 니 다.
    upstream web {
      ip_hash;
      server 192.168.1.1:8081;
      server 192.168.1.2:8081;
    }

    통용 hash
    hash 사용자 정의 계산 할 key 를 사용 합 니 다. 예제 에 서 는 요청 주 소 를 사용 합 니 다. consistent 인 자 를 선택 하면 일치 성 해시 알고리즘 을 사용 할 수 있 습 니 다.
    upstream web {
      hash $request_uri;
      # hash $request_uri consistent;
      server 192.168.1.1:8081;
      server 192.168.1.2:8081;
    }

    참고:
  • Using nginx as HTTP load balancer
  • Module ngx_http_upstream_module

  • 총결산
    Nginx 는 자주 사용 하 는 프 록 시 서버 로 기능 이 매우 강하 고 성능 도 좋 습 니 다. 더 많은 자 료 는 공식 문 서 를 참고 하 십시오.
    현재 부분의 코드
    버 전 v 0.14.0 으로

    좋은 웹페이지 즐겨찾기