У меня есть сервер gRP C, написанный на Java, и в настоящее время я пытаюсь создать веб-клиент с React. Однако я не могу управлять соединением между прокси-сервером-посланником, к которому подключается клиент, и реальным сервером.
Я ожидал бы получить то же сообщение, что и с клиентом Java, но я получить ошибку "Http response at 400 or 500 level"
, получая пустой ответ с веб-клиентом, в то время как сервер Java даже не получает запрос.
Сервер работает на порту 8080, а прокси-сервер-посредник настроен на порт 9090, который используется веб-клиентом.
Dockerfile:
FROM envoyproxy/envoy-dev:latest
COPY ./envoy.yaml /etc/envoy/envoy.yaml
CMD /usr/local/bin/envoy -c /etc/envoy/envoy.yaml -l trace --log-path /tmp/envoy_info.log
envoy.yaml:
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address: { address: 0.0.0.0, port_value: 9901 }
static_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 9090 }
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: m_service
cors:
allow_origin:
- "*"
allow_headers: keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout
expose_headers: grpc-status,grpc-message
enabled: true
http_filters:
- name: envoy.grpc_web
- name: envoy.cors
- name: envoy.router
clusters:
- name: m_service
connect_timeout: 0.25s
type: logical_dns
http2_protocol_options: {}
lb_policy: round_robin
hosts:
socket_address:
address: localhost
port_value: 8080
Команды, которые я использую для сборки и при запуске контейнера docker docker build -t m-server .
, а docker run -p 9090:9090 -td m-server /bin/bash
и классы прототипа для внешнего интерфейса загружаются статически.
Если есть еще код, который было бы полезно опубликовать, пожалуйста, дайте мне знать. Любой совет приветствуется, спасибо!