ServBay'de Ngrok Ters Proxy Hizmeti Konfigürasyonu Rehberi
Ngrok, güçlü ve güvenli bir tünel oluşturma aracıdır. Ters proxy teknolojisine dayalı olarak, güvenlik duvarlarını ve NAT'ı aşabilir; yerel ortamda çalışan servisleri genel ağdan erişilebilen alan adlarına eşler. Bu rehberde, ServBay yerel geliştirme ortamınıza Ngrok entegrasyonunu ve yapılandırmasını adım adım anlatarak, yerel web servislerinizi, API'larınızı veya diğer hizmetlerinizi internete açmanızı ve uzaktan sunum, ekip işbirliği ya da üçüncü parti geri arama testlerini kolayca gerçekleştirmenizi sağlayacağız.
Teknik Prensipler
Ngrok'un temel çalışma prensibi, bilgisayarınız ve Ngrok sunucusu arasında şifreli bir tünel bağlantısı kurmaktır. Dış kullanıcılar, Ngrok tarafından atanan genel alan adı üzerinden erişim isteğinde bulunduğunda, önce istek Ngrok sunucusuna iletilir, ardından güvenli tünel üzerinden yerel ServBay ortamınızda çalışan ilgili servise yönlendirilir. Böylece yerel makineniz genel IP'ye sahip olmasa veya güvenlik duvarı arkasında olsa dahi servisinize dışarıdan erişim sağlanır. ServBay kullanımı kapsamında, yerel olarak kurduğunuz web sitelerini, arka uç API'larını veya başka herhangi bir HTTP/HTTPS tabanlı servisi gerçek zamanlı olarak dış dünyayla paylaşabilirsiniz.
Ortam Hazırlığı
Ngrok'u yapılandırmaya başlamadan önce aşağıdaki hazırlıkları tamamladığınızdan emin olun:
- ServBay Yüklü ve Çalışıyor: ServBay uygulamasının kurulu ve çalışır durumda olduğundan, Ngrok ile açmak istediğiniz web hizmetinin (örneğin bir web sitesi) ServBay'de yapılandırılmış ve erişilebilir olduğundan emin olun. Yerel site yapılandırmanızı ServBay'in "Web Sitesi" panelinden görüntüleyebilirsiniz.
- Ngrok İstemcisi Kurulumu: Ngrok CLI aracını şu adımlarla kurun:
- Ngrok'un resmi indirme sayfasını ziyaret ederek işletim sisteminize uygun kurulum paketini indirin.
- İndirilen dosyayı açın ve
ngrok
yürütülebilir dosyasını sistem PATH'inde yer alan bir dizine (macOS için genellikle/usr/local/bin
) taşıyın veya kopyalayın. Böylece, herhangi bir terminaldengrok
komutunu doğrudan çalıştırabilirsiniz.bash# macOS ARM64 mimarisi için örnek sudo unzip ~/Downloads/ngrok-v3-stable-darwin-arm64.zip -d /usr/local/bin
1
2 - Kurulumu doğrulayın;
ngrok version
komutunu çalıştırıp sürüm numarasını görüntüleyebildiğinizden emin olun:bashngrok version # Örnek çıktı: ngrok version 3.5.0
1
2
- Ngrok Hesabı (isteğe bağlı ancak önerilir): Ngrok hesabı ile (ücretsiz veya ücretli), tünellerinizi yönetmek ve sabit alan adı gibi gelişmiş özellikleri kullanmak kolaylaşır. Ngrok sitesinde kayıt olarak doğrulama tokenınızı alıp (
ngrok config add-authtoken <YOUR_AUTH_TOKEN>
) ekleyebilirsiniz. Böylece bağlantı süresi sınırı kalkar ve daha fazla özellik kullanılabilir. - Yerel Web Sitesi Yapılandırılmış: ServBay'de Ngrok üzerinden genel ağa açmak istediğiniz en az bir yerel web sitesini (örneğin
servbay.local
veyayourproject.servbay.demo
gibi bir alan adıyla) yapılandırmış olmalısınız.
Tünel Kurulumu (Uygulamalı)
Temel Parametrelerin Açıklaması
Servis eşlemesi için standart komut yapısı şu şekildedir:
ngrok http --domain=<NGROK_DOMAIN> <LOCAL_ENDPOINT> \
--request-header-add='host: <VIRTUAL_HOST>'
2
Parametre | Açıklama |
---|---|
http | HTTP protokolü tabanlı bir tünelin kurulacağını belirtir. Ngrok, gelen HTTP/HTTPS isteklerini yönlendirir. |
--domain <NGROK_DOMAIN> | Ngrok tarafından size verilen sabit alan adını belirtir (Ngrok kontrol panelinizde yapılandırdığınız veya atanan gerçek alan adı ile değiştirin). Ücretsiz planda genellikle gerekli değildir, Ngrok rastgele bir alt alan adı atar. |
<LOCAL_ENDPOINT> | Yerel ServBay servisinize ait adres. Bu genellikle site için yapılandırdığınız yerel alan adıdır (ör: https://servbay.local ). Alternatif olarak http://localhost:port formatı da olabilir. |
--request-header-add='host: <VIRTUAL_HOST>' | [ÖNEMLİ] İsteklerin Host başlığını yeniden yazar. ServBay, farklı siteleri ayırt etmek için genellikle HTTP Host başlığını kullanır. Bu parametreyle dışarıdan gelen isteğin Host başlığını yerel ortamda ServBay'e tanımlı site alan adınızla (servbay.local gibi) değiştiriyoruz, böylece isteklerin doğru siteye yönlendirilmesini sağlıyoruz. |
Yapılandırma Örneği
Diyelim ki ServBay'de servbay.local
adında bir yerel site yapılandırdınız ve bu siteyi Ngrok aracılığıyla genel ağa açmak istiyorsunuz. Ücretsiz Ngrok planı kullanıyorsanız doğrudan yerel adresi eşleyebilirsiniz:
# Yerel ServBay sitesini (servbay.local) Ngrok'un atadığı rastgele bir alan adına bağla
ngrok http https://servbay.local --request-header-add='host: servbay.local'
2
Eğer Ngrok kontrol panelinde tanımlı bir sabit alan adınız (ör: your-servbay-demo.ngrok-free.app
veya ücretli planda özel alan adınız) varsa --domain
parametresini kullanın:
# Yerel ServBay sitesi servbay.local'i belirli Ngrok alan adına bağla
ngrok http --domain=your-servbay-demo.ngrok-free.app https://servbay.local --request-header-add='host: servbay.local'
2
Başarılı bir şekilde bu komutları yürüttüğünüzde, Ngrok istemcisi terminalde tünel durumu, atanan genel ağ erişim adresi (ör: https://xxxx.ngrok-free.app
veya ayarladığınız alan adı) ve canlı trafik izleme panelinin yerel adresini (genellikle http://127.0.0.1:4040
) gösterecektir.
Servis Doğrulama
Yapılandırma tamamlanıp Ngrok tüneli başarıyla başlatıldığında, servisin genel ağdan erişilebilirliğini aşağıdaki adımlarla doğrulayabilirsiniz:
- Genel Ağ Adresi Alın: Ngrok istemcisinin terminalinde
Forwarding
satırını bulun vehttps://
ile başlayan genel ağ URL'sini not edin. - Tarayıcı ile Erişim: İnternete bağlı herhangi bir cihazdan, bir tarayıcı açın ve yukarıda elde edilen Ngrok genel URL'sini (ör.
https://cunning-lacewing-fresh.ngrok-free.app
veya sabit alan adınızı) ziyaret edin. - Sonucu Doğrulayın:
- Tarayıcıda, yerel ServBay sunucunuzda barındırdığınız site içeriğinin düzgün yüklendiğinden emin olun.
- Adres çubuğunda güvenli bağlantı (HTTPS) simgesi olup olmadığını kontrol edin. Ngrok, tünel için geçerli SSL sertifikası sunar.
- Ngrok istemci terminalinde ya da yerel web panelinde (
http://127.0.0.1:4040
) trafik ve istek loglarına bakarak taleplerin başarılı şekilde ServBay'e ulaşıp ulaşmadığını doğrulayabilirsiniz.
Görsel: Web tarayıcısından Ngrok ile oluşturulan tünele başarılı erişim
İleri Düzey İpuçları ve Dikkat Edilmesi Gerekenler
- Alan Adı Yönetimi:
- Ngrok ücretsiz planında tünel için genellikle rastgele bir
.ngrok-free.app
alt alan adı atanır ve bağlantı süresi kısıtlıdır. - Hesap kaydıyla Ngrok Dashboard üzerinden sabit alan başvurusu yapılabilir; böylece tünel her başlatıldığında adresiniz değişmez.
- Ücretli planlarda kendi üst düzey alan adınızı bağlayabilir, daha yüksek bant genişliği, eş zamanlı bağlantı ve daha gelişmiş işlevler elde edebilirsiniz.
- Ngrok ücretsiz planında tünel için genellikle rastgele bir
- Birden Fazla Servis Eşleme: ServBay'de birden fazla farklı yerel servisi veya portu genel ağa açmak istiyorsanız, birden fazla Ngrok tüneli başlatabilir veya Ngrok yapılandırma dosyasıyla (
~/.config/ngrok/ngrok.yml
) birden çok tünel tanımlayabilirsiniz. Örneğin; hem yerel ServBay sitesi hem başka bir yerel servisi eşlemek:bashNot: ServBay'deki sanal hostlar için# ServBay servbay.local sitesini (varsayalım HTTPS 443, Host başlığı ile yönlendirme) ngrok http --domain=servbay-website.ngrok-free.app https://servbay.local --request-header-add='host: servbay.local' # Farklı bir terminalde veya konfig dosyasıyla 3000 portundaki Node.js uygulaması için ngrok http --domain=nodejs-api.ngrok-free.app http://localhost:3000
1
2
3
4
5https://[yerel alan adı]
ve--request-header-add
şeklinde tünelleme önerilir; doğrudan ServBay'in 80/443 portlarını tünellemek ideal değildir çünkü bu portlarda ServBay tüm sanal host isteklerini karşılar. - Tanı Komutları:
ngrok config check
: Ngrok konfigürasyon dosyasının (~/.config/ngrok/ngrok.yml
) sözdizimini doğrular.ngrok logs
: Ngrok istemcisinin terminalde ayrıntılı loglarını anlık olarak görüntüleyin ve bağlantı ya da yönlendirme sorunlarını teşhis edin.
- Güvenlik: Yerel servisleri genel ağa açmak güvenlik riski taşır. Sadece güvenli servisleri açın ve Ngrok tünellerini gerekmiyorsa açık tutmayın. Ücretli planda IP beyaz listeleme, erişim sınırlandırma gibi ek güvenlik özellikleri bulunur.
Sorun Giderme
Durum | Çözüm |
---|---|
Zaman aşımı veya sayfa yüklenemiyor | ServBay'deki hedef web sitesinin çalışır durumda olduğundan ve yerel alan adıyla ulaşılabildiğinden emin olun (ör. yerel tarayıcıda https://servbay.local ile test edin). ServBay web sunucusunun (örn. Caddy veya Nginx) düzgün çalıştığını ve yerel güvenlik duvarınızın Ngrok istemcisine izin verdiğini kontrol edin. |
HTTPS sertifika hatası (tarayıcı uyarısı) | Ngrok, genel alan adı için otomatik ve geçerli HTTPS sertifikası sunar. Erişimde hata oluyorsa, tünel veya ağ yapılandırmanızla ilgili olabilir. ServBay ile ilgili değildir. Sadece Ngrok tarafından verilen https:// adresini kullandığınızdan emin olun. Hata yerel alan adında oluşuyorsa, ServBay SSL ayarlarını kontrol edin. |
Aralıklı bağlantı kopmaları, yavaşlık | Yerel ağ bağlantınızın stabilitesini kontrol edin. Ağ dalgalanmaları tünelin kopmasına sebep olabilir. Mümkünse kablolu bağlantı tercih edin. Yüksek güvenilirlik gerektiğinde, Ngrok'un ücretli planındaki altyapı ve bant genişliği avantajlarından yararlanın. |
ServBay'in varsayılan sayfası yerine farklı bir site açılıyor | ngrok http komutundaki <LOCAL_ENDPOINT> parametresini ve --request-header-add='host: <VIRTUAL_HOST>' içerisindeki <VIRTUAL_HOST> değerinin ServBay'de tanımlı gerçek alan adınızla tam uyumlu olduğundan emin olun. ServBay'in isteği doğru siteye yönlendirmesi için bu çok kritik! |
Sıkça Sorulan Sorular (SSS)
S: ServBay'in veritabanı servisini tünelleyebilir miyim?
C: Ngrok esas olarak HTTP/HTTPS tünelleri içindir. Ngrok, veritabanı gibi servislere TCP tüneli de sunar fakat bu rehberde yalnızca HTTP tüneli konusu anlatılmıştır ve veritabanınızı doğrudan genel ağa açmak ciddi güvenlik riski içerir. Uzaktan erişim için daha güvenli alternatifler (SSH tüneli gibi) önerilir.
S: Her Ngrok başlatışımda genel alan adım değişiyor mu?
C: Ücretsiz Ngrok planında, atanan
.ngrok-free.app
alan adı tipik olarak rastgele olur. Sabit genel alan adı için hesap kaydı yapmanız ve panelden yapılandırma, gerekirse ücretli versiyona geçiş yapmanız gerekir.S: Ngrok, yerel ServBay performansımı etkiler mi?
C: Ngrok, isteklerin Ngrok sunucusu üzerinden yönlendirilmesi nedeniyle küçük bir ağ gecikmesi ekler. Fakat geliştirme, test ve demo için bu gecikme genellikle ihmal edilebilir düzeydedir. ServBay'in yerel performansı bilgisayarınızın donanımına ve uygulamanızın verimliliğine bağlıdır.
Sonuç
Ngrok entegrasyonu sayesinde ServBay kullanıcıları, yerel web geliştirme çalışmalarını güvenli ve verimli bir şekilde internette paylaşabilir. Bu yöntem karmaşık ağ yapılandırmaları gerektirmez ve özellikle uzaktan işbirliği, müşteri sunumu, mobil veya üçüncü parti entegrasyonlarının test edilmesi gibi kullanımlar için çok uygundur. Ngrok, canlı trafik izleme ve (bazı özellikler ücretli planda) güçlü güvenlik seçenekleri sunar. Kritik uygulamalar veya sabit alan adı gereksinimleri için, daha stabil ve kapsamlı bir deneyim için Ngrok'un ücretli planlarına geçiş önerilir.