웹을 Kotlin 백엔드에서 시험했을 때의 메모 - 3. ReverseProxy편

7116 단어 envoygRPCgrpc-web

About



이 테마의 연재, ReverseProxy 편입니다.

구성



괜찮습니다. .



설정



ReverseProxy의 설정은 샘플의 reverse-proxy 디렉토리에 들어 있습니다만, 설정 파일과 Dockerfile 뿐입니다.

Envoy 설정 (reverse-proxy.yaml)



Envoy 공식 블로그 에 해설이 있으므로, 그 설정 파일을 참고로 해 곧바로 설정할 수 있었습니다.

디버깅을 위해 액세스 로그를 표준 출력으로 내보내는 설정을 추가했습니다.

reverse-proxy/reverse-proxy.yaml
admin:
  access_log_path: /tmp/admin_access.log
  address:
    socket_address:
      protocol: TCP
      address: 0.0.0.0
      port_value: 9901
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address: { address: 0.0.0.0, port_value: 8080 }
    filter_chains:
    - filters:
      - name: envoy.http_connection_manager
        config:
          codec_type: auto
          stat_prefix: ingress_http
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              - match: { prefix: "/" }
                route:
                  cluster: service
                  max_grpc_timeout: 0s
              cors:
                allow_origin:
                - "*"
                allow_methods: GET, PUT, DELETE, POST, OPTIONS
                allow_headers: keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,custom-header-1,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout
                max_age: "1728000"
                expose_headers: custom-header-1,grpc-status,grpc-message
          access_log:
            - name: envoy.file_access_log
              config:
                path: /dev/stdout
          http_filters:
          - name: envoy.grpc_web
          - name: envoy.cors
          - name: envoy.router
  clusters:
  - name: service
    connect_timeout: 0.25s
    type: logical_dns
    http2_protocol_options: {}
    lb_policy: round_robin
    hosts:
    - socket_address:
        address: service
        port_value: 6565

Dockerfile



컨테이너화합니다.
FROM envoyproxy/envoy-alpine

EXPOSE 8080
EXPOSE 9901

ADD reverse-proxy.yaml /etc/reverse-proxy.yaml

ENTRYPOINT [ "/usr/local/bin/envoy", "-c", "/etc/reverse-proxy.yaml", "--service-cluster reverse-proxy" ]

다음 번



다음 번은 웹 프런트 엔드 편입니다.

좋은 웹페이지 즐겨찾기