Я пытаюсь проксировать SSH-трафик от nginx (прослушивающий порт 7999) на сервер битбакета (прослушивающий порт 7998) на серверной части. И nginx, и битбакет работают внутри контейнеров Docker. Если я войду в контейнер nginx и сделаю телнет bitbucket.domain-name.com 7998
это соединяется. На хост-машине, если я это сделаю netstat -pnlt
Я получил:
Активные интернет-соединения (только серверы)
Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние PID/имя программы
tcp6 0 0 :::2377 :::* ПРОСЛУШАТЬ 24477/dockerd
tcp6 0 0 :::7946 :::* ПРОСЛУШАТЬ 24477/dockerd
tcp6 0 0 :::80 :::* ПРОСЛУШАТЬ 24477/dockerd
tcp6 0 0 :::443 :::* ПРОСЛУШАТЬ 24477/dockerd
tcp6 0 0 :::7999 :::* ПРОСЛУШАТЬ 24477/dockerd
Но я, когда делаю это на своем компьютере: клонировать git ssh://[email protected]:7999/project_key/repo_name.git
я получил
Клонирование в 'repo_name'...
ssh: подключиться к хосту domain-name.com, порт 7999: подключение отклонено
фатальный: Не удалось прочитать из удаленного репозитория.
И когда я делаю telnet доменное имя.com 7999
я получил telnet: невозможно подключиться к удаленному хосту: в соединении отказано
.
Кажется, проблема в том, что nginx не прослушивает порт 7999 внутри контейнера докеров. Но на хосте я вижу докерд
прослушивает порт 7999. Я предполагаю, что у меня может быть неправильная конфигурация nginx, но я не уверен. Вот соответствующие биты из файлов конфигурации.
docker-compose.yaml (nginx)
Сервисы:
нгинкс:
порты:
- "80:8080"
- "443:8443"
- "7999:7997"
nginx.conf (внутри контейнера nginx)
транслировать {
сервер {
слушать 7997;
proxy_pass bitbucket1.cybertron.ninja:7998;
}
}
И вот некоторый вывод, выполненный внутри контейнера nginx:
root@6d123f454eef:/# netstat -pnlt
Активные интернет-соединения (только серверы)
Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние PID/имя программы
TCP 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 10/nginx: master pr
TCP 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 10/nginx: master pr
TCP 0 0 127.0.0.11:44703 0.0.0.0:* ПРОСЛУШИВАТЬ -
Любые идеи, как решить эту проблему? Я в тупике.