Feersum

 view release on metacpan or  search on metacpan

eg/envoy.yaml  view on Meta::CPAN

                codec_type: AUTO
                use_remote_address: true

                request_timeout: 30s
                request_headers_timeout: 30s
                stream_idle_timeout: 300s

                http_filters:
                  - name: envoy.filters.http.router
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router

                route_config:
                  name: local_route_https
                  virtual_hosts:
                    - name: backend
                      domains: ["*"]
                      request_headers_to_add:
                        - header:
                            key: x-forwarded-for
                            value: "%REQ(x-envoy-external-address)%"
                          append_action: OVERWRITE_IF_EXISTS_OR_ADD
                      routes:
                        - match:
                            prefix: "/ws"
                          route:
                            cluster: feersum_tcp
                            timeout: 3600s
                            upgrade_configs:
                              - upgrade_type: websocket
                        - match:
                            prefix: "/"
                          route:
                            cluster: feersum_tcp
                            timeout: 60s

  #===========================================================================
  # Clusters (backends)
  #===========================================================================
  clusters:

    #-------------------------------------------------------------------------
    # TCP backend
    #-------------------------------------------------------------------------
    - name: feersum_tcp
      type: STATIC
      connect_timeout: 5s
      lb_policy: ROUND_ROBIN

      # HTTP/1.1 keepalive to backend
      typed_extension_protocol_options:
        envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
          "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
          explicit_http_config:
            http_protocol_options:
              header_key_format:
                proper_case_words: {}

      load_assignment:
        cluster_name: feersum_tcp
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: 127.0.0.1
                      port_value: 5000
              # Add more for load balancing:
              # - endpoint:
              #     address:
              #       socket_address:
              #         address: 127.0.0.1
              #         port_value: 5001
              # - endpoint:
              #     address:
              #       socket_address:
              #         address: 127.0.0.1
              #         port_value: 5002

      # Health check (optional)
      health_checks:
        - timeout: 5s
          interval: 10s
          unhealthy_threshold: 3
          healthy_threshold: 2
          http_health_check:
            path: /health

    #-------------------------------------------------------------------------
    # Unix socket backend (faster, no TCP overhead)
    #-------------------------------------------------------------------------
    - name: feersum_unix
      type: STATIC
      connect_timeout: 5s
      lb_policy: ROUND_ROBIN

      typed_extension_protocol_options:
        envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
          "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
          explicit_http_config:
            http_protocol_options:
              header_key_format:
                proper_case_words: {}

      load_assignment:
        cluster_name: feersum_unix
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    pipe:
                      path: /tmp/feersum.sock

admin:
  address:
    socket_address:
      address: 127.0.0.1
      port_value: 9901



( run in 0.607 second using v1.01-cache-2.11-cpan-16aabcbfbcb )