![여러 호스트에 대한 NGINX 역방향 프록시 SSH](https://rvso.com/image/1605165/%EC%97%AC%EB%9F%AC%20%ED%98%B8%EC%8A%A4%ED%8A%B8%EC%97%90%20%EB%8C%80%ED%95%9C%20NGINX%20%EC%97%AD%EB%B0%A9%ED%96%A5%20%ED%94%84%EB%A1%9D%EC%8B%9C%20SSH.png)
NGINX를 사용하면 다양한 웹사이트에 대한 일반 http(s)와 작동하는 여러 역방향 프록시가 있습니다. 공용 IP 주소는 하나만 있지만 그 뒤에는 여러 개의 가상 호스트가 있습니다. 이 부분은 정상적으로 작동하고 있습니다.
nginx 뒤의 모든 호스트에 SSH로 접속하고 싶습니다. 현재는 3개뿐이지만 앞으로는 더 많은 호스트가 있을 것입니다.
nginx는 버전 1.9.1 이상이므로 ssh용으로 구성하기 시작한 스트림을 허용하는 버전이라고 생각합니다. 나중에 데이터베이스를 혼합에 추가하고 메일도 추가하고 싶지만 지금은 ssh가 우선순위입니다.
그래서 시작하기 위해 nginx 디렉토리에 ssh_available 및 ssh_enabled를 추가했습니다.
/etc/nginx/nginx.conf 다음을 추가했습니다.
stream {
include /etc/nginx/ssh_enabled/*;
}
/etc/nginx/ssh_available/domain.com.rproxy.conf 다음이 있습니다.
upstream ssh {
server 192.168.1.61:22;
}
server {
listen 22;
proxy_pass ssh;
}
나는 ssh_available의 conf 파일에 ssh_enabled의 심볼릭 링크를 추가하는 일반적인 방법을 사용했습니다.
이를 통해 nginx 리버스 프록시 뒤에 있는 하나의 호스트로 SSH를 연결할 수 있지만 호스트는 하나만 가능합니다.
이 현재 구성을 사용하면 공용 IP, 하위 도메인 또는 fqdn을 사용하더라도 SSH 연결은 항상 동일한 호스트에 연결됩니다.
단일 IP/도메인 대신 여러 호스트/도메인 이름과 함께 작동할 수 있도록 이를 보다 이식성 있는 것으로 바꾸려면 어떻게 해야 합니까?
내가 원하는 것은 도메인을 사용하여 SSH를 통해 이를 호스팅하는 서버에 연결하는 것입니다.
답변1
나는 해결 방법을 생각해 냈습니다. 이는 현재까지 ssh가 도메인을 허용하지 않기 때문에 원하는 것보다 더 많은 열린 포트를 의미하며 IPV6 솔루션이 떠돌고 있지만 현재는 이것이 나에게 해결책이 아닙니다.
그래서 더 많은 포트가 있습니다.
내 해결책은 다음과 같습니다. 각 서버에 충분한 포트인 작은 포트 범위를 nginx로 전달합니다. 거의 모든 포트 범위를 선택하거나 원하는 대로 선택할 수 있지만 이 예를 최대한 간단하게 만들려면 범위를 선택하는 것이 더 쉽습니다.
/etc/nginx/ssh_available/에서 생성한 conf 파일을 수정했습니다.
upstream 59 {
server 192.168.1.59:22;
}
server {
listen 22059;
proxy_pass 59;
}
upstream 61 {
server 192.168.1.61:22;
}
server {
listen 22061;
proxy_pass 61;
}
upstream 62 {
server 192.168.1.62:22;
}
server {
listen 22062;
proxy_pass 62;
}
upstream 63 {
server 192.168.1.63:22;
}
server {
listen 22063;
proxy_pass 63;
}
물론 이를 통해 네트워크에서 사용 가능한 IPV4 주소 수에 의해 제한됩니다. IPV6이 더 나은 옵션이 될 수 있지만 아직은 없습니다.
이 예를 있는 그대로 사용하면 내부 IP를 문제를 해결하려는 모든 사람에게 포트 번호로 제공하여 네트워크 인프라의 일부를 광고하게 됩니다. 열려는 포트를 선택하고 적절하게 구성을 설정해야 합니다.
마지막으로, 이것은 IMO가 훌륭한 답변은 아니지만 작동하는 답변이므로 게시하고 있지만 솔루션으로 받아들이지는 않습니다. 제가 생각해낸 것보다 IPV4에 대한 더 나은 방법이 있을 수 있으며 귀하의 답변을 진심으로 환영합니다.