Ngrok nedir? Nasıl atılır?
Web geliştiricileri için bilgisayarlarından eksik edilmeyecek bir araçtır. Projenin internet’e yayınlaması için geçici bir kanal oluşturulur. Bu kanal üzerinden dünyanın her yerinden erişilebilir olur. Yayınlama işleminin hızlı ve pratik olması ngrok’un yangın olmasının başlıca sebebi olduğu söylenebilir. Normal koşullarda kodladığımız projenin internet’e açılması için aracı bir servis(Azure, AWS vs.) kullanılması gerekir. Ngrok sayesinde oluşturduğu kanal ile lokal adresimize bağlanılır. Böylece projenizi internet’e açmış olursunuz.
Kurulum
Kullanımının kolay olduğundan bahsetmiştim. Fakat kullanmaya başlamadan önce küçük bir kaç küçük işlemin yapılması gerekiyor. Öncellikle resmi sitesine(ngrok.com) giderek bir hesap oluşturulması gerekmektedir. Hesap oluşturduğumuzda hesabınıza özel bir token oluşturulur. Bu token ile hizmetin kullanılmasına izin verilir.
Kayıt olduktan sonra gönderdiği sayfadan program indirilir. Hemen ardından verilen token komutu cmd üzerinden çalıştırılır. Böylece benzersiz tokeniniz programa tanımlanmış olur.
ngrok authtoken <auth_token>
Uygulama
Ngrok’a kayıt işlemlerini hallettikten sonra uygulamamızı kısa bir işlem ile yayınlama aşamasına geldik. Sadece küçük bir komut ve uygulamanızın lokalde kullandığı port numarası verilerek yayınlanmış olur.
ngrok http <port_number>
Devamında ise ngrok bize bir sanal kanal oluşturarak bize bir url verir. Ayrıca bize SLL sertifikalı başka bir url daha verecektir. Tercihen kullanılabilir.
Ngrok isteklerin takibini sağlamak için bir lokalde UI sağlamaktadır. localhost:4040 adresinden bu UI’a erişilebilir.
ASP.Net Core Ngrok
React, Java gibi web uygulamalarında bu yöntemle internet’e açılabilir. Ancak ASP.Net web uygulamasını paylaşırken ortak bir sorun oluşmaktadır. 502 Bad Gateway hatası göndermektedir. Bundan dolayı farklı bir adres gönderilmesi gerekiyor.
ngrok http https://localhost:5001 -host-header=”localhost:5001”
Bitirmeden önce bir husustan daha bahsetmek isterim. Farklı url’ler ile ngrok kanalı oluşturulabilir. Örneğin;
Subdomain kullanılmak istendiğinde:
ngrok http -subdomain=baz 8080
Eğer port yerine host kullanılmak istendiğinde:
>ngrok http foo.dev:80direk olarak lokal adres verilebilir
>ngrok http https://localhostTCP tüneli oluşturulabilir.
> ngrok tcp 22
Elimden geldiğince ngrok kullanımını anlatmaya çalıştım. Aslında anlatımı gerekli olduğunu düşündüğüm bir şey değil. Birçok kaynaktan hatta kendi dökümantasyonlarından bu bilgilere ulaşılanabilir. Ancak asp.net sorunu gibi bir kaç küçük soruna değinmek istedim. Okuduğunuz için teşekkürler.
Kaynak
İletişim
Muhammet İkbal KAZANCI — Github Repository — LinkedIn — mi.kazanci@hotmail.com