단일 포트를 통해서만 액세스할 수 있는 서버가 있습니다(포트 전달 기능이 있는 VPN을 사용합니다). 제가 호스팅하는 일부 HTTPS 서버에 대해 NGINX를 사용하여 역방향 프록시를 설정했습니다.
위치를 지정하고 SSH 포트 22를 사용하여 LAN IP로 리디렉션할 수 있는 비슷한 작업을 수행할 수 있는지 궁금합니다.
location /ssh/ {
proxy_pass 192.168.1.44:22;
}
나는 Proxy_pass가 HTTP에서만 작동한다는 것을 알고 있지만 ssh에 대한 것이 있는지 궁금합니다.
답변1
이것은 매우 좋은 질문입니다. 예, nginx를 사용하여 SSH 트래픽을 리디렉션할 수 있습니다. 다음 예에서 nginx는 프로토콜을 기반으로 트래픽을 리디렉션합니다. 이는 nginx가 SSH 트래픽을 인식하여 SSH 서버로 리디렉션할 수 있고, HTTPS 트래픽을 인식하여 웹 서버로 리디렉션할 수도 있음을 의미합니다.
이 경우 10.10.10.4
SSH 서버이고 10.10.10.5
백엔드는 웹 서버(nginx 프록시 뒤)입니다.
stream {
upstream ssh {
server 10.10.10.4:22;
}
upstream web {
server 10.10.10.5:443;
}
map $ssl_preread_protocol $upstream {
default ssh;
"TLSv1.2" web;
}
# SSH and SSL on the same port
server {
listen 443;
proxy_pass $upstream;
ssl_preread on;
}
}