Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
6 yazı bulundu #nginx
Web Server, Application Server ve Reverse Proxy: Bir HTTP İsteği Uygulamana Nasıl Ulaşır?
DevOps SERİ 01

Web Server, Application Server ve Reverse Proxy: Bir HTTP İsteği Uygulamana Nasıl Ulaşır?

Kestrel hem web server hem application server; reverse proxy ise isteği karşılayıp arkadaki uygulamaya ileten, TLS termination, statik dosya, compression, buffering ve load balancing'i üstlenen katman. Aynı isteği önce doğrudan Kestrel'e, sonra Nginx üzerinden gönderip uygulamanın gördüğü IP'yi, header'ları ve Angular deep link davranışını karşılaştırıyor, beş hosting topolojisini yan yana koyuyoruz.

8 Kas 2026 10 dk 5
Nginx Temelleri: Kurulum, nginx.conf Yapısı, server ve location Block'ları
DevOps SERİ 04

Nginx Temelleri: Kurulum, nginx.conf Yapısı, server ve location Block'ları

Nginx'i nginx.org deposundan kurmak güncel stable dalı (1.30) verir; Ubuntu 24.04'ün paketi 1.24'te kalıyor. Master ve worker process'leri, nginx.conf context'lerini, default_server ile bilinmeyen host'u reddetmeyi, location eşleşme algoritmasını (=, en uzun prefix, ^~, regex), root ile alias farkını, proxy_pass'teki sondaki slash'i ve bozuk config ile reload ve restart'ın farklı sonuçlarını gerçek koşularla görüyoruz.

8 Kas 2026 11 dk 5
Nginx ile ASP.NET Core Reverse Proxy: proxy_pass, Header'lar, WebSocket/SignalR ve Timeout'lar
DevOps SERİ 05

Nginx ile ASP.NET Core Reverse Proxy: proxy_pass, Header'lar, WebSocket/SignalR ve Timeout'lar

Nginx 1.29.7'den beri upstream keepalive ve HTTP/1.1 varsayılan, ama yalnız upstream block'u kullanırsan: doğrudan adrese giden proxy_pass her istekte yeni bağlantı açıyor. Microsoft'un referans config'ini satır satır açıyor, WebSocket upgrade map'i olmadan SignalR'ın sessizce long polling'e düştüğünü, SSE'de buffering'i, Nginx ile Kestrel'in body ve header limit'lerini hizalamayı ve 502 ile 504'ü log'dan ayırt etmeyi ölçüyoruz.

8 Kas 2026 11 dk 5
Nginx ile Angular Yayınlamak: SPA Fallback, Cache Header'ları, Compression ve /api Proxy
DevOps SERİ 06

Nginx ile Angular Yayınlamak: SPA Fallback, Cache Header'ları, Compression ve /api Proxy

Angular'ı Nginx ile yayınlarken try_files ile SPA fallback, hash'li bundle'lara immutable ve index.html'e no-cache şart; aksi hâlde deploy sonrası eski chunk'ı isteyen tarayıcı 200 ile HTML alıyor. gzip_static, runtime config.json, aynı origin'de /api proxy ile CORS'suz kurulum, base href ile alt yolda yayın ve Angular SSR'ı Node ile Nginx arkasına koyarken allowedHosts tuzağı gerçek koşularla.

8 Kas 2026 11 dk 5
Nginx'te HTTPS, Security Header'ları, Rate Limiting ve Load Balancing
DevOps SERİ 07

Nginx'te HTTPS, Security Header'ları, Rate Limiting ve Load Balancing

Nginx'te TLS termination, http2 on ve listen quic ile HTTP/3, add_header_inherit merge ile kaybolmayan security header'ları, tek yerden HSTS, limit_req ile 429 ve upstream zone'u olmadan round robin'in dengesiz dağıldığı gerçek koşularla. ip_hash, 1.29.6 ile gelen sticky cookie ve max_fails ile passive health check: bir instance ölünce client tek hata görmüyor, ama idempotent olmayan istekler ve sağlıksız ama ayakta process'ler ayrı ele alınmalı.

8 Kas 2026 11 dk 6
Hosting Seçimi ve Production Checklist'i: Nginx, IIS, Caddy, Container ve PaaS
DevOps SERİ 11

Hosting Seçimi ve Production Checklist'i: Nginx, IIS, Caddy, Container ve PaaS

Hosting seçimini önce ekibin neyi işletebildiği, sonra servis sayısı, deploy sıklığı ve maliyet belirler; Linux VM ve Nginx, IIS, Caddy, Traefik, YARP, PaaS ve container aynı soruların farklı cevapları. Caddy'yi yedi satırlık config ve active health check ile deniyor, go-live öncesi on maddelik bir kontrol script'iyle yedinci yazının config'inde dışarıdan görünmeyen health endpoint'i ve 443'te eksik default server'ı yakalıyoruz.

8 Kas 2026 11 dk 4
Blog Haritası