У меня docker составить файл как
---
version: '3.7'
services:
myapi:
image: tiangolo/uwsgi-nginx-flask:python3.7
env_file: apivars.env
logging:
driver: syslog
options:
syslog-address: "udp://127.0.0.1:514"
tag: tags
labels: labels
ports:
- "8080:80"
deploy:
placement:
constraints:
- node.role != manager
mode: replicated
replicas: 32
update_config:
parallelism: 4
delay: 5s
order: start-first
...
У меня есть балансировщик нагрузки, который перенаправит запрос этому администратору роя.
Насколько я понимаю, если я нажму www.myapi.com
, он попадет в LoadBalancer, а затем запросит go к администратору роя, а затем менеджер роя отправит этот запрос одной из 32
реплик.
Теперь проблема в том, что журналы LoadBalancer сообщают о некоторых из 502 ошибок.
# head -n1 /var/log/haproxy.log
Apr 28 09:35:28 localhost haproxy[43117]: 172.19.9.1:50220 [28/Apr/2020:09:35:08.549] main~ API_Production/swarmnode5 0/0/1/19952/19953 502 309 - - ---- 97/97/10/1/0 0/0 "GET /v2/students/?includeFields=name,id&per_page=1000&page=88 HTTP/1.1"
Я должен проверить, достигает ли он Swarm Manager или swarmnode5?
Я проверяю журналы на nginx
, но он не сообщает об ошибках 502. Есть некоторые исключения, но не уверен, что в коде есть исключение, тогда почему nginx
не регистрирует этот вызов API и ответ?