В ваших конфигах нет ни 1 правильной строчки.
другое решение через запуск прокси сервера для всех сервисов, через который они и будут общаться
Нужно было всего лишь добавить "network_mode: host"
после добавления этой строки все мои сервисы начали видеть друг-друга по localhost:PORT.
Объяснить поподробнее с примерами или подсказать как правильно это гуглить?
RUN cd /home/project/ && python -m venv env
RUN python -m venv /home/project/env
Для firewalld такая комманда должна быть ? Firewalld поддерживает fqdn ?
root@srv-test:~# curl --interface 151.23.54.101 ident.me
151.23.54.101
root@srv-test:~# curl --interface 151.23.54.102 ident.me
151.23.54.102
root@srv-test:~# curl --interface 151.23.54.103 ident.me
151.23.54.103
server {
listen 3131;
server_name proxy.localhost;
location / {
proxy_pass http://ident.me/;
proxy_bind 151.23.54.101;
}
}
server {
listen 3132;
server_name proxy.localhost;
location / {
proxy_pass http://ident.me/;
proxy_bind 151.23.54.102;
}
}
server {
listen 3133;
server_name proxy.localhost;
location / {
proxy_pass http://ident.me/;
proxy_bind 151.23.54.103;
}
}
root@srv-test:/etc/nginx/vhosts/servertest# curl proxy.localhost:3131
151.23.54.101
root@srv-test:/etc/nginx/vhosts/servertest# curl proxy.localhost:3132
151.23.54.102
root@srv-test:/etc/nginx/vhosts/servertest# curl proxy.localhost:3133
151.23.54.103
$host
через кастомный заголовок X-Forwarded-Host (в прочем это может и не понадобится).
Можно ли все то что сделанно на iptables переделать на firewalld ?
Правильно ли было решать эту задачу на nginx ?
Как сделать чтобы Iptables поддерживал fqdn? Удаленный сервис может находится в облаке.
Как логировать POSTROUTING в отдельный файл для траблшутинга и мониторинга
-J LOG
, там можно добавить префикс по которому, в итоге, можно фильтровать записи. Я думаю можно заставить syslog писать их в отдельный лог. Или если есть ELK заставить fiebeat писать эти логи в отдельный индекс.Можно ли эту конфигурацию добавить в docker и docker-composer.yml для сервисов работающих в докере? По умолчанию докер не видит ip адреса хост машины и не понятно, как их привязать к докеру.
network: host
). Или пошаманить с правилами в таблице NAT - этот вариант предпочтительней (но придётся все правила руками писать и отключить докеру возможность управлять фаирволом). В server_name необходимо прописать api.site1.com ?
ping -4 -c 1 inter-proxy1.localhost
PING inter-proxy1.localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.017 ms
почему запрос все время отправляется с default ip 45.148.28.67
curl --interface 45.148.31.170 'https://api.ipify.org?format=json'
, чтобы убедиться, что на уровне сети всё настроено корректно.proxy_pass http://dynamic;
server { ... }
c разнымиserver_name
и использовать разные сертификаты.Проблемы точно возникнут, но не с Nginx, а с некоторыми браузерами, которые не будут доверять сертификату если он выдан для IP, с сертификатами выданными на имя проблем быть не должно (если они валидные, конечно).
Опиши, что именно не работает на данный момент.