nginx 및 SSH를 사용하여 로컬 서비스를 노출하는 방법
외부 IP 주소와 SSH 액세스가 실행되는 개발자를 위한 일부 가상 머신이 이미 있습니다. 나는 이 작업을 해결하기 위해 그것들을 사용할 것을 제안했습니다. 아래에서 적용할 수 있는 솔루션을 찾을 수 있습니다.
필요한 사항:
some.domain.tld
- 서버 외부 IP를 가리키는 일부 도메인 이름. 구성부터 시작하겠습니다 -
/etc/nginx/sites-available/some.domain.tld
쓰기:server {
listen 80;
listen [::]:80;
gzip on;
server_name some.domain.tld;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host 127.0.0.1;
proxy_set_header X-Original-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
이 구성은
some.domain.tld
에 대한 요청을 서버의 로컬 포트 8080으로 프록시합니다.활성화하려면 다음 명령을 사용하여 이 구성을
sites-enabled
디렉토리에 연결해야 합니다.ln -s /etc/nginx/sites-available/some.domain.tld /etc/nginx/sites-enabled/some.domain.tld
그리고 nginx를 다시 시작합니다 -
systemctl restart nginx
. 이제 도메인some.domain.tld
에서 방문자는 "잘못된 게이트웨이"라는 메시지가 있는 오류 페이지를 보게 됩니다. 모두 8080 포트에 아무것도 없기 때문입니다.이제 ssh 터널의 힘으로 원격 서버의 이 8080 포트가 로컬 시스템의 일부 포트를 가리킬 것입니다.
로컬 서비스를 노출하려면 다음 명령을 사용할 수 있습니다.
ssh -N -R $PORT_ON_SERVER:localhost:$LOCAL_PORT $LOGIN@$SERVER
어디:
사용자 이름이
alice
라고 가정하면 서버는 some.domain.tld
도메인에서 사용할 수 있고 로컬 서비스는 포트 4502에서 사용할 수 있습니다.ssh -N -R 8080:localhost:4502 [email protected]
그게 다입니다. 브라우저에서 도메인을 열면 로컬 서비스가 표시됩니다. 인터넷상의 모든 사용자도 볼 수 있으므로 주의하세요! ;-)
Reference
이 문제에 관하여(nginx 및 SSH를 사용하여 로컬 서비스를 노출하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/elwin013/how-to-expose-local-service-using-nginx-and-ssh-1jmj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)