Я выставил веб-сервис на моем локальном компьютере на внешний IP-адрес через Mikrotik и могу получить к нему доступ через MY_EXTERNAL_IP:5000
.
Но мой nginx-сервер не может получить доступ к MY_EXTERNAL_IP:5000
. Журналы:
14:09:53 firewall,info dstnat: in:bridge out:(none), src-mac 60:03:08:8c:a7:30, proto TCP (SYN), 192.168.1.19:50135->MY_EXTERNAL_IP:5000, len 64
14:09:55 firewall,info input: in:ether1 out:(none), src-mac 04:62:73:a2:55:49, proto TCP (SYN), 188.196.62.73:47850->MY_EXTERNAL_IP:5000, len 60
Журнал ошибок Nginx:
[error] 2048#0: *434 connect() failed (111: Connection refused) while connecting to upstream, client: MY_EXTERNAL_IP, server: MY_DOMAIN.com, request: "GET / HTTP/1.1", upstream: "http://MY_EXTERNAL_IP:5000/", host: "MY_DOMAIN.com"
Почему nginx-сервер не может получить доступ к MY_EXTERNAL_IP:5000
(Это вызывает ошибку 502), иначе я могу из браузера?
Я полагаю, мне нужно дополнительное правило фильтра межсетевого экрана. Который из?
Проблема была в настройках NAT: у меня был In. Interface
остановился на «Мост» вместо «ether1» (правильный).
Вам также необходимо добавить разрешающее правило в цепочку FORWARD:
/ip firewall filter add chain=forward action=accept protocol=tcp dst-address=INTERNAL_IP dst-port=5000 log=no log-prefix=""
Правило должно быть выше любых общих правил блокировки, влияющих на цепочку FORWARD.