Modern web altyapılarında, birden fazla web uygulamasını tek bir sunucu üzerinden yönetmek ve erişimi kolaylaştırmak için reverse proxy çözümleri büyük önem taşır. Nginx Proxy Manager, bu ihtiyacı karşılamak üzere geliştirilmiş, kullanıcı dostu bir arayüze sahip güçlü bir reverse proxy yöneticisidir. Bu rehberde, Nginx Proxy Manager’ın nasıl kurulacağını ve temel konfigürasyon adımlarını detaylı bir şekilde inceleyeceğiz.
1. Nginx Proxy Manager Nedir?
Nginx Proxy Manager, Nginx tabanlı bir reverse proxy çözümüdür ve Docker konteynerleri kullanılarak kolayca kurulabilir. Web tabanlı arayüzü sayesinde, SSL sertifikaları yönetimi, alan adı yönlendirmeleri ve kullanıcı yönetimi gibi işlemler basit adımlarla gerçekleştirilebilir. Nginx Proxy Manager, özellikle ev sunucuları, küçük ölçekli işletmeler ve geliştiriciler için ideal bir çözümdür.
Özellikleri:
- Kullanıcı Dostu Arayüz: Basit ve sezgisel bir web arayüzü ile kolay yönetim.
- SSL Sertifika Yönetimi: Let’s Encrypt entegrasyonu ile ücretsiz SSL sertifikaları otomatik olarak yenilenir.
- Alan Adı Yönlendirmeleri: Farklı alan adlarını ve alt alan adlarını yönetme imkanı.
- Kullanıcı Yönetimi: Farklı kullanıcılar için erişim kontrolleri ve yetkilendirmeler.
- Gelişmiş Loglama: Trafik ve hata loglarını izleme ve analiz etme.
2. Kurulum Öncesi Gereksinimler
Nginx Proxy Manager’ı kurmadan önce sisteminizin aşağıdaki gereksinimleri karşıladığından emin olun:
- İşletim Sistemi: Ubuntu 20.04 veya daha yeni bir sürüm önerilir.
- Docker ve Docker Compose: Nginx Proxy Manager, Docker konteynerleri üzerinde çalışır, bu nedenle Docker ve Docker Compose’un kurulu olması gerekmektedir.
- Alan Adı ve DNS Ayarları: Yönlendirme yapacağınız alan adlarının DNS kayıtlarının sunucunuza işaret etmesi gerekmektedir.
- Sunucu Kaynakları: En az 1 CPU çekirdeği, 1 GB RAM ve yeterli disk alanı.
3. Docker ve Docker Compose Kurulumu
Nginx Proxy Manager’ı Docker kullanarak kurmak için öncelikle Docker ve Docker Compose’un sisteminizde yüklü olması gerekmektedir.
3.1. Docker Kurulumu
- Depoları Güncelleyin:
sudo apt-get update
- Gerekli Paketleri Kurun:
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
- Docker’ın Resmi GPG Anahtarını Ekleyin:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- Docker Deposu Ekleyin:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- Docker’ı Kurun:
sudo apt-get update
sudo apt-get install -y docker-ce
- Docker Servisini Başlatın ve Etkinleştirin:
sudo systemctl start docker
sudo systemctl enable docker
- Docker Kurulumunu Doğrulayın:
docker --version
3.2. Docker Compose Kurulumu
- Docker Compose İndirin:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- Docker Compose’u Çalıştırılabilir Yapın:
sudo chmod +x /usr/local/bin/docker-compose
- Docker Compose Kurulumunu Doğrulayın:
docker-compose --version
4. Nginx Proxy Manager Kurulumu
Docker ve Docker Compose kurulumunu tamamladıktan sonra, Nginx Proxy Manager’ı kurmak için aşağıdaki adımları izleyin.
4.1. Proje Dizini Oluşturma
Öncelikle, Nginx Proxy Manager için bir proje dizini oluşturun ve bu dizine geçin:
mkdir ~/nginx-proxy-manager
cd ~/nginx-proxy-manager
4.2. Docker Compose Dosyasını Oluşturma
Aşağıdaki içerikle docker-compose.yml
dosyasını oluşturun:
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # HTTP
- '81:81' # Web Arayüzü
- '443:443' # HTTPS
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
db:
image: 'mysql:5.7'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
4.3. Docker Compose ile Nginx Proxy Manager’ı Başlatma
Docker Compose dosyasını oluşturduktan sonra, aşağıdaki komutla hizmetleri başlatın:
docker-compose up -d
Bu komut, gerekli Docker konteynerlerini arka planda çalıştıracaktır.
5. Nginx Proxy Manager Web Arayüzüne Erişim
Kurulum tamamlandıktan sonra, web tarayıcınızda Nginx Proxy Manager arayüzüne erişebilirsiniz.
- Web Arayüzüne Giriş:
- Tarayıcınızın adres çubuğuna sunucunuzun IP adresini veya alan adını ve port 81’i girin:
http://sunucu_ip_adresi:81
- Varsayılan Giriş Bilgileri:
- Kullanıcı Adı:
admin@example.com
- Şifre:
changeme
- İlk girişinizde, şifrenizi değiştirmeniz istenecektir.
6. Nginx Proxy Manager Konfigürasyonu
6.1. Alan Adı Yönlendirmesi Ekleme
- Proxy Hosts Sekmesine Gitme: Web arayüzünde, sol menüden “Proxy Hosts” seçeneğine tıklayın ve “Add Proxy Host” butonuna basın.
- Alan Adı ve Hedef Ayarları:
- Domain Names: Yönlendirmek istediğiniz alan adını girin (örneğin,
example.com
). - Scheme: Hedef sunucunuzun kullandığı protokolü seçin (http veya https).
- Forward Hostname / IP: Hedef sunucunun IP adresini veya hostname’ini girin.
- Forward Port: Hedef sunucunun kullandığı portu girin (örneğin, 80 veya 443).
- SSL Ayarları:
- Block Common Exploits: Güvenlik için bu seçeneği işaretleyin.
- Websockets Support: Gerekliyse işaretleyin.
- SSL Sekmesi: “Request a new SSL Certificate” seçeneğini işaretleyin ve Let’s Encrypt ile otomatik SSL sertifikası alın.
- Force SSL: HTTPS zorlamak için bu seçeneği etkinleştirin.
- Kaydetme: “Save” butonuna tıklayarak ayarları kaydedin.
6.2. SSL Sertifikası Yönetimi
Nginx Proxy Manager, Let’s Encrypt entegrasyonu sayesinde otomatik olarak SSL sertifikaları alır ve yeniler.
- SSL Sekmesine Gitme: Proxy host eklerken SSL sekmesinde gerekli ayarları yaptığınızdan emin olun.
- Otomatik Yenileme: Let’s Encrypt sertifikaları 90 gün geçerlidir. Nginx Proxy Manager, bu sertifikaları otomatik olarak yeniler.
6.3. Kullanıcı Yönetimi
Farklı kullanıcılar için erişim kontrolü sağlamak isterseniz, kullanıcı yönetimi yapabilirsiniz.
- User Management Sekmesine Gitme: Sol menüden “Users” seçeneğine tıklayın.
- Yeni Kullanıcı Ekleme: “Add User” butonuna basarak yeni bir kullanıcı oluşturun. Kullanıcıya uygun roller ve yetkiler atayın.
7. Gelişmiş Ayarlar ve İpuçları
7.1. Yedekleme ve Geri Yükleme
Nginx Proxy Manager’ın verilerini yedeklemek ve gerektiğinde geri yüklemek için data
ve letsencrypt
klasörlerini düzenli olarak yedekleyin.
7.2. Güvenlik İyileştirmeleri
- Güçlü Şifreler Kullanma: Yönetici hesabınız için güçlü ve benzersiz şifreler kullanın.
- Güvenlik Duvarı Ayarları: Sadece gerekli portların (80, 81, 443) açık olduğundan emin olun.
- Güncellemeleri Takip Etme: Nginx Proxy Manager ve Docker imajlarını düzenli olarak güncelleyerek en son güvenlik yamalarından yararlanın.
7.3. Performans Optimizasyonu
- Kaynak Kullanımını İzleme: Docker konteynerlerinin CPU ve RAM kullanımını izleyerek sunucu kaynaklarınızı verimli kullanın.
- Cache Ayarları: Nginx’in önbellekleme özelliklerini kullanarak web trafiğinizi optimize edin.
Sonuç
Nginx Proxy Manager, karmaşık reverse proxy yapılandırmalarını basitleştiren ve kullanıcı dostu bir arayüz sunan güçlü bir çözümdür. Docker kullanarak hızlıca kurulumunu gerçekleştirebilir, alan adı yönlendirmeleri ve SSL sertifikası yönetimi gibi işlemleri kolaylıkla yapabilirsiniz. Bu rehberde yer alan adımları takip ederek, kendi sunucunuzda Nginx Proxy Manager’ı başarıyla kurabilir ve yapılandırabilirsiniz.