gondola: 가볍고 간단한 YAML 기반 역방향 프록시를 사용하면 어떨까요?
곤돌라란 무엇인가요?
gondola는 Go에서 만든 역방향 프록시로 YAML로 구성 파일을 작성하기만 하면 쉽게 사용할 수 있습니다.
Awesome-go에서 만나보실 수 있습니다.
Go의 표준 라이브러리만을 사용하여 구현되었으며 다음과 같은 기능을 가지고 있습니다
- 가상 호스트
- 업스트림 서버에 여러 호스트를 설정할 수 있습니다.
- 구성 파일 로더
- YAML 형식의 구성 파일을 사용할 수 있습니다.
- TLS
- TLS 인증서를 준비하시면 TLS를 이용하실 수 있습니다.
- 정적 파일 제공
- 정적 파일을 제공할 수 있습니다.
- 접속 로그
- 프록시 접속 로그와 업스트림 서버 접속 로그를 출력합니다.
- 바이너리 배포
- 크로스 컴파일된 바이너리를 배포합니다.
동기 부여
저는 Go로 직접 만든 bmf-tech.com이라는 블로그를 운영하고 있습니다.
Nginx를 사용하여 역방향 프록시를 구축한 블로그입니다.
제 블로그 시스템의 아키텍처는 복잡하지 않고, 보다 간단한 구성으로 운영할 수 있는 리버스 프록시면 충분하다고 생각했습니다.
그래서 저는 Nginx와 같은 유연한 구문을 사용하는 구성 파일 대신 간단한 구성 파일로 구성할 수 있는 나만의 역방향 프록시를 구축하기로 결정했습니다.
실제로 제가 운영하는 블로그 시스템에서 곤돌라를 사용하고 있는데 현재까지는 간단하고 쉽게 운영되고 있습니다.
곤돌라 이용방법
go get 명령을 사용하거나 바이너리를 다운로드하여 곤돌라를 사용할 수 있습니다.
go get -u github.com/bmf-san/gondola
바이너리는 릴리스부터 사용할 수 있습니다.
Docker 이미지는 bmf-san/gondola에서도 보실 수 있습니다.
구성 파일에 프록시 서버(곤돌라)와 업스트림 서버가 구성되면 곤돌라를 시작하면 됩니다.
# example config.yaml proxy: (default) port: 443 read_header_timeout: 2000 shutdown_timeout: 3000 tls_cert_path: certificates/cert.pem tls_key_path: certificates/key.pem static_files: /public/static_files - path: /public/ dir: . /public upstreams: host_name: backend1.local - host_name: backend1.local target: http://backend1:8081 # backend1 is the name of the container - host_name: backend2.local target: http://backend2:8082 # backend2 is the name of the container log_level: 0 # Debug:-4 Info:0 Warn:4 Error:8
다음과 같이 곤돌라를 시작하세요.
gondola -config config.yaml
원하는 경우 바로 시험해 볼 수 있는 _examples도 있습니다.
Go에서 역방향 프록시 구현
Go에서 역방향 프록시를 구현하려면 Golang에서 로드 밸런서 구현을 참조하세요.
본 글에서는 로드밸런서 구현 방법을 소개하고 있는데, 역방향 프록시 구현을 기반으로 하기 때문에 도움이 될 수 있습니다.
기부금
곤돌라에서는 문제와 끌어오기 요청을 환영합니다.
물론 스타님도 환영합니다.
곤돌라의 일부 기능과 구현이 아직 누락되어 있어 계속해서 개선해 나가고 싶습니다.
- 정상적인 종료
- 업스트림 서버 상태 점검
- 구성 파일 다시 로드
- 통신비 최적화
- 로드 밸런싱
- 확장성을 위한 기타 구현 조정
의견을 자유롭게 남겨주세요.
위 내용은 gondola: 가볍고 간단한 YAML 기반 역방향 프록시를 사용하면 어떨까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Go Language Pack 가져 오기 : 밑줄과 밑줄이없는 밑줄의 차이점은 무엇입니까?

Beego 프레임 워크에서 페이지간에 단기 정보 전송을 구현하는 방법은 무엇입니까?

MySQL 쿼리 결과 목록을 GO 언어로 사용자 정의 구조 슬라이스로 변환하는 방법은 무엇입니까?

GO에서 제네릭에 대한 사용자 정의 유형 제약 조건을 어떻게 정의 할 수 있습니까?

이동 중에 테스트를 위해 모의 개체와 스터브를 작성하려면 어떻게합니까?

추적 도구를 사용하여 GO 응용 프로그램의 실행 흐름을 이해하려면 어떻게해야합니까?
