Tôi đang cố gắng ủy quyền lưu lượng truy cập SSH từ nginx (nghe trên cổng 7999) đến máy chủ bitbucket (nghe trên cổng 7998) ở mặt sau. Cả nginx và bitbucket đều đang chạy bên trong Docker container. Nếu tôi đăng nhập vào nginx container và làm telnet bitbucket.domain-name.com 7998
nó kết nối. Trên máy chủ nếu tôi làm netstat -pnlt
Tôi có:
Kết nối Internet đang hoạt động (chỉ máy chủ)
Proto Recv-Q Send-Q Địa chỉ cục bộ Địa chỉ nước ngoài Trạng thái PID/Tên chương trình
tcp6 0 0 :::2377 :::* NGHE 24477/dockerd
tcp6 0 0 :::7946 :::* NGHE 24477/dockerd
tcp6 0 0 :::80 :::* NGHE 24477/dockerd
tcp6 0 0 :::443 :::* NGHE 24477/dockerd
tcp6 0 0 :::7999 :::* NGHE 24477/dockerd
Nhưng, khi tôi làm điều này trên máy tính của mình: git clone ssh://[email protected]:7999/project_key/repo_name.git
tôi có
Nhân bản thành 'repo_name'...
ssh: kết nối với máy chủ tên miền-cổng.com 7999: Kết nối bị từ chối
gây tử vong: Không thể đọc từ kho lưu trữ từ xa.
Và khi tôi làm tên miền telnet.com 7999
tôi có telnet: Không thể kết nối với máy chủ từ xa: Kết nối bị từ chối
.
Có vẻ như vấn đề là nginx không nghe trên cổng 7999 bên trong bộ chứa docker. Nhưng, trên máy chủ tôi có thể thấy dockerd
đang nghe trên cổng 7999. Tôi tưởng tượng rằng tôi có thể không có cấu hình nginx chính xác, nhưng tôi không chắc. Đây là các bit có liên quan từ các tập tin cấu hình.
docker-compose.yaml (nginx)
dịch vụ:
nginx:
cổng:
- "80:8080"
- "443:8443"
- "7999:7997"
nginx.conf (bên trong nginx container)
dòng {
người phục vụ {
nghe 7997;
proxy_pass bitbucket1.cybertron.ninja:7998;
}
}
Và đây là một số đầu ra được thực thi bên trong nginx container:
root@6d123f454eef:/# netstat -pnlt
Kết nối Internet đang hoạt động (chỉ máy chủ)
Proto Recv-Q Send-Q Địa chỉ cục bộ Địa chỉ nước ngoài Trạng thái PID/Tên chương trình
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:* NGHE -
Bất kỳ ý tưởng làm thế nào để khắc phục vấn đề này? Tôi bối rối.