ngrok 공식 홈페이지( 링크 )에서 다음과 같이 소개하고 있습니다.
Public URLs for sending previews to clients.
Public URLs for demoing from your own machine.
Public URLs for SSH access to your Raspberry Pi.
Public URLs for exposing your local web server.
Public URLs for testing on mobile devices.
Public URLs for building webhook integrations.
Spend more time programming. One command for an instant, secure URL to your localhost server through any NAT or firewall
ngrok은 SSH 접근, local 웹 서버를 노출, 모바일 테스트, webhook 등과 관련하여 공공 URL을 제공합니다.
설명 그대로 cmd 창에서 명령어 한 줄이면, 공공 URL이 생성되기 때문에 매우 간단하면서 유용한 프로그램입니다.
또한 감사하게도 무료입니다.
저는 페이스북 API를 사용할 때 https 프로토콜로 통신하는 redirect URL이 필요했었습니다.
호스팅을 받아서 openSSL을 설치하거나, 허로쿠를 이용하는 방법을 생각해 보았는데 너무 귀찮았습니다.
그러던 중 ngrock이라는 프로그램을 발견하게 되었죠.
ngrock 덕분에 페이스북 API를 정말 간단하게 사용할 수 있었기에, 이를 소개하려고 합니다.
우선 ngrok을 다운받아야 하기 때문에, ngrok 공식 홈페이지에서 " Get started for free " 버튼을 클릭합니다.
그리고 회원가입을 해주시고, 자신의 OS에 맞게 설치를 진행합니다. ( 여기서는 윈도우를 기준으로 합니다. )
다운을 받은 후 압축을 해제해서, ngrok.exe 파일을 실행합니다.
이제 공용 URL을 생성하기 위해서 명령어를 입력합니다.
# ngrok http 80
http와 https 프로토콜 모두를 지원하고 있습니다.
우선 URL을 복사해서 브라우저에서 접속해보겠습니다.
그러면 아마 위와 같은 에러가 발생할 것입니다.
80포트는 HTTP 프로토콜이 사용하는 포트이기 때문이죠.
따라서 자바 웹 애플리케이션을 실행하고 싶다면 8080포트를 작성하고, ( 톰캣의 기본 포트가 8080이기 때문입니다. )
# ngrok http 8080
노드 플랫폼 위에서 실행되는 노드 웹 애플리케이션을 실행하고 싶다면 3000 포트로 작성하면 됩니다.
# ngrok http 3000
이상으로 ngrok을 소개하고, 기본적인 사용 방법에 대해 알아보았습니다.
ngrok을 사용하면 local web server를 외부에 노출시킬 수 있고, https 프로토콜을 사용한다는 것이 저에게는 큰 장점이였습니다.