Ana Sayfa / Dokümanlar / Nginx Proxy Manager
KTD-006

Nginx Proxy Manager Kurulumu ve Yapılandırması

Bu dokümanda Docker üzerinde Nginx Proxy Manager kurulumunu, web arayüzüne ilk giriş işlemini, Proxy Host oluşturmayı, Docker container'a yönlendirme yapmayı ve Let's Encrypt SSL sertifikası almayı adım adım öğreneceğiz.

Nginx Proxy Manager Docker Reverse Proxy SSL HTTPS Proxy Host
Okuma Süresi 35-45 dakika
Bölüm Sayısı 15 bölüm
Son Güncelleme Temmuz 2026
Seviye Başlangıç - Orta

Nginx Proxy Manager Nedir?

Nginx Proxy Manager, Nginx reverse proxy işlemlerini kolay bir web arayüzü üzerinden yönetmemizi sağlayan kullanışlı bir araçtır. Alan adlarını container'lara yönlendirmek, SSL sertifikası almak ve HTTPS yönlendirmesi yapmak için tercih edilir.

📌 Gerçek Proje Notu

Bu doküman, kemaltokmak.com sitesini Docker container üzerinden yayınlarken kullandığımız gerçek Nginx Proxy Manager yapısına göre hazırlanmıştır.

Neden Nginx Proxy Manager Kullandık?

VPS üzerinde ileride birden fazla web sitesi yayınlamak istediğimiz için her siteyi ayrı ayrı container olarak çalıştırıp gelen trafiği doğru container'a yönlendirmemiz gerekir.

  • Tek VPS üzerinde birden fazla site yayınlayabiliriz.
  • Alan adlarını ayrı container'lara yönlendirebiliriz.
  • Let's Encrypt SSL sertifikasını kolayca alabiliriz.
  • HTTP trafiğini HTTPS'e yönlendirebiliriz.
  • Web arayüzü sayesinde yönetim kolaylaşır.

Nginx Proxy Manager Klasörünü Hazırlama

Önce Docker projelerimizin bulunduğu dizine geçiyoruz ve Nginx Proxy Manager için ayrı bir klasör oluşturuyoruz.

cd /opt/docker
mkdir -p nginx-proxy-manager
cd nginx-proxy-manager

Bu klasör içinde compose dosyamız, data klasörü ve SSL dosyaları yer alacaktır.

Docker Network Oluşturma

Nginx Proxy Manager'ın diğer web container'ları ile konuşabilmesi için ortak bir Docker network kullanıyoruz.

docker network create web

Network zaten varsa Docker hata verebilir. Bu durumda mevcut network kullanılabilir.

docker network ls

compose.yaml Dosyasını Hazırlama

Nginx Proxy Manager container'ını Docker Compose ile tanımlıyoruz.

nano compose.yaml

Dosyanın içine şu yapı eklenir:

services:
  nginx-proxy-manager:
    image: jc21/nginx-proxy-manager:latest
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - "80:80"
      - "81:81"
      - "443:443"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - web

networks:
  web:
    external: true
💡 İpucu

80 ve 443 portları internet trafiği için, 81 portu ise Nginx Proxy Manager yönetim paneli için kullanılır.

Container'ı Başlatma

Compose dosyasını hazırladıktan sonra servisi arka planda başlatıyoruz.

docker compose up -d

Bu komut gerekli imajı indirir ve Nginx Proxy Manager container'ını çalıştırır.

Container Durumunu Kontrol Etme

Container'ın çalışıp çalışmadığını kontrol ediyoruz.

docker ps

Listede nginx-proxy-manager container'ı görünüyorsa kurulum başarılıdır.

docker ps Nginx Proxy Manager ekran görüntüsü

Web Arayüzüne Giriş

Nginx Proxy Manager yönetim paneli 81 portu üzerinden açılır. Tarayıcıdan şu adrese gidilir:

http://SUNUCU_IP_ADRESI:81

Eğer sayfa açılmıyorsa UFW güvenlik duvarı, port yönlendirmesi ve container durumu kontrol edilmelidir.

İlk Admin Hesabını Düzenleme

İlk girişten sonra varsayılan kullanıcı bilgileri değiştirilir. Güvenlik için güçlü bir parola kullanılmalıdır.

⚠️ Dikkat

Yönetim paneli internete açık olduğu için varsayılan bilgileri değiştirmeden sistemi kullanmak güvenli değildir.

İlk admin hesabı düzenleme ekran görüntüsü

Proxy Host Oluşturma

Web sitemizi alan adı üzerinden yayınlamak için Nginx Proxy Manager panelinde yeni bir Proxy Host oluştururuz.

Menüden şu yol izlenir:

Hosts → Proxy Hosts → Add Proxy Host

Domain Names alanına kullanılacak alan adı yazılır:

kemaltokmak.com
www.kemaltokmak.com

Forward Host Ayarları

Proxy Host oluştururken gelen trafiğin hangi container'a yönlendirileceğini belirtmemiz gerekir.

Bizim web sitesi container adımız:

kemaltokmak

Forward ayarları şu şekilde yapılabilir:

Scheme: http
Forward Hostname / IP: kemaltokmak
Forward Port: 80
ℹ️ Bilgi

Nginx Proxy Manager ile web sitesi container'ı aynı Docker network içinde olduğu için IP adresi yerine container adını kullanabiliriz.

Let's Encrypt SSL Sertifikası Alma

Proxy Host ayarları yapıldıktan sonra SSL sekmesine geçilir. Buradan Let's Encrypt sertifikası talep edilir.

  • SSL Certificate: Request a new SSL Certificate
  • Force SSL: Aktif
  • HTTP/2 Support: Aktif
  • Email adresi girilir.
  • Let's Encrypt şartları kabul edilir.
Let's Encrypt SSL alma ekran görüntüsü

HTTP'den HTTPS'e Yönlendirme

SSL sertifikası alındıktan sonra Force SSL seçeneği sayesinde HTTP istekleri otomatik olarak HTTPS'e yönlendirilir.

Test için şu komut kullanılabilir:

curl -I http://kemaltokmak.com

Çıktıda 301 yönlendirme görülüyorsa HTTP'den HTTPS'e yönlendirme çalışıyor demektir.

Sorun Giderme

Nginx Proxy Manager kurulumunda en sık karşılaşılan sorunlar port çakışması, DNS yönlendirme hatası, container'ın aynı network içinde olmaması ve SSL doğrulama problemleridir.

Container Loglarını Kontrol Etme

docker logs nginx-proxy-manager

Web Container Network Kontrolü

docker network inspect web

NPM Container İçinden Web Container'ı Test Etme

docker exec -it nginx-proxy-manager sh
getent hosts kemaltokmak
⚠️ Dikkat

SSL sertifikası alabilmek için alan adının doğru şekilde VPS IP adresine yönlenmiş olması ve 80/443 portlarının açık olması gerekir.

Bu Dokümanda Ne Öğrendik?

Bu dokümanda Docker üzerinde Nginx Proxy Manager kurduk, yönetim paneline giriş yaptık, web sitesi container'ımıza Proxy Host üzerinden yönlendirme yaptık ve Let's Encrypt SSL sertifikası ile sitemizi HTTPS üzerinden yayınladık.

✅ Özet
  • Nginx Proxy Manager'ın ne işe yaradığını öğrendik.
  • Docker network yapısını hazırladık.
  • compose.yaml ile NPM container'ını kurduk.
  • 81 portundan yönetim paneline giriş yaptık.
  • Proxy Host oluşturduk.
  • Container adına yönlendirme yaptık.
  • Let's Encrypt SSL sertifikası aldık.
  • HTTP trafiğini HTTPS'e yönlendirdik.
  • Log ve network kontrollerini öğrendik.
Sonraki Doküman KTD-007 — Alan Adı ve DNS Yapılandırması