Nginx Proxy Manager, Docker tabanlı uygulamalar için reverse proxy yönetimini kolaylaştıran kullanıcı dostu bir arayüz sunan açık kaynaklı bir çözümdür.
Nginx Proxy Manager, Docker tabanlı uygulamalar için reverse proxy yönetimini kolaylaştıran kullanıcı dostu bir arayüz sunan açık kaynaklı bir çözümdür. Özellikle birden fazla konteyner çalıştıran ortamlarda, trafiği yönlendirme, SSL sertifikalarını otomatikleştirme ve erişim kontrollerini merkezi olarak yönetme ihtiyacını karşılar. Bu makale, kurumsal düzeyde Docker konteyner yönetimi için Nginx Proxy Manager’ı (NPM) nasıl entegre edeceğinizi pratik adımlarla anlatacaktır. Kurulumdan başlayarak proxy host oluşturma, gelişmiş yapılandırmalara kadar kapsamlı bir rehber sunarak, sistem yöneticilerine somut kazanımlar sağlayacaktır.
Docker konteyner yönetimi için NPM kurulumunu docker-compose ile gerçekleştirmek, en verimli yaklaşımdır. Bu yöntem, veritabanı (SQLite veya MariaDB) ve NPM konteynerini tek bir YAML dosyasıyla yönetmenizi sağlar. Öncelikle, sunucunuzda Docker ve Docker Compose’un yüklü olduğundan emin olun. Ardından, bir dizin oluşturup docker-compose.yml dosyasını hazırlayın. Bu dosya, port 80, 443 ve 81’i (yönetim paneli için) açar ve volumes ile kalıcı veri depolama sağlar.
mkdir npm && cd npm.version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
db:
image: mariadb:latest
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: npmrootpass
MYSQL_DATABASE: npm
MYSQL_USER: npm
MYSQL_PASSWORD: npmpass
volumes:
- ./mysql:/var/lib/mysql
docker-compose up -d komutuyla başlatın. Tarayıcıda http://sunucu-ip:81 adresine giderek varsayılan e-posta: [email protected], şifre: changeme ile giriş yapın ve şifreyi değiştirin. Bu kurulum, konteynerlerinizi yönetmek için hazır bir altyapı oluşturur ve yaklaşık 5 dakikada tamamlanır. Volumes sayesinde veri kaybı önlenir, restart politikası ile yüksek erişilebilirlik sağlanır.
Proxy host oluşturmak, Docker konteynerlerinizi dış dünyaya açmanın temel adımıdır. NPM panelinde “Hosts” sekmesine gidin ve “Proxy Hosts” ekleyin. Domain adınızı girin (örneğin, app.ornek.com), hedef IP’yi konteynerınızın dahili IP’si veya hostname’i olarak belirtin (Docker network’te çalışıyorsa). Portu konteyner servisinin dinlediği porta göre ayarlayın, örneğin 3000. “Forward Hostname / IP” alanına konteyner adını yazın ve “Block Common Exploits” ile “Websockets Support” seçeneklerini etkinleştirin. Kaydetmekle trafik otomatik yönlendirilir. Bu, Node.js veya React app gibi konteynerler için idealdir ve subdomain bazlı izolasyon sağlar.
HTTPS için Let’s Encrypt entegrasyonu NPM’nin en güçlü yanlarındandır. Proxy host detay sayfasında “SSL” sekmesine geçin, “Request a new SSL Certificate” seçin ve e-posta girin. “Force SSL” ve “HTTP/2 Support” etkinleştirin. Domain doğrulaması otomatik SRV challenge ile yapılır; DNS A kaydınızı sunucu IP’sine yönlendirdiğinizden emin olun. Sertifika 90 günde yenilenir. Bu işlem, konteyner trafiğinizi şifreleyerek kurumsal güvenlik standartlarını karşılar ve PCI DSS gibi uyumluluklar için zorunludur. Test için curl ile doğrulayın: curl -I https://app.ornek.com.
Erişim listeleri ve redirect’ler ile NPM’yi genişletin. “Access Lists” oluşturarak IP bazlı kısıtlamalar tanımlayın; örneğin, yönetim panelini sadece belirli subnet’lere açın. “Redirect Hosts” ile HTTP’yi HTTPS’e yönlendirin. Docker Swarm veya Compose stack’lerde NPM’yi network’lere bağlayın: networks: default: external: name: proxy. Logları incelemek için NPM’nin data volume’undaki dosyaları kullanın. Güncellemeler için docker-compose pull && docker-compose up -d uygulayın. Bu pratikler, ölçeklenebilirlik sağlar ve downtime’ı minimize eder.
Cache ve rate limiting ekleyin. NPM ayarlarında “Advanced” sekmesinde Nginx konfigürasyonunu özelleştirin: proxy_buffering on; proxy_cache_path tanımlayın. Docker resource limitleri koyun: cpus: 1.0, memory: 512M. Monitoring için Portainer entegrasyonu önerilir; konteyner metriklerini izleyin. Bu optimizasyonlar, yüksek trafikli kurumsal uygulamalarda %30’a varan performans artışı sağlar ve kaynak israfını önler.
Nginx Proxy Manager ile Docker konteyner yönetimi, operasyonel verimliliği artırır ve güvenlik katmanları ekler. Bu rehberdeki adımları uygulayarak, ekibiniz hızlıca production-ready bir proxy altyapısı kurabilir. Düzenli yedeklemeler ve güncellemelerle uzun vadeli güvenilirlik elde edin; NPM, modern DevOps workflow’larınızın vazgeçilmezi olacaktır.