Nginx Proxy Manager Nedir?

NGINX proxy yöneticisi,  web kullanıcı arayüzüne sahip NGINX tabanlı ters proxy ve SSL yönetim sistemidir. SSL sertifikaları alabilir, bireysel yapılandırmalar, özelleştirmeler ve izinsiz giriş koruması ile birkaç proxy'yi yönetebilirsiniz. Açık kaynak kodludur ve GitHub'da korunur. Joker karakter sertifikaları elde etmek için de kullanılabilen, letsencrypt tarafından sağlanan ücretsiz bir SSL sertifika yönetimi içerir. NGINX proxy yöneticisini dağıtmak için küçük bir MySQL veritabanı konteynerine ve NGINX konteynerine ihtiyacınız var. Bunu docker-compose ile kolayca yapabiliriz.

https://nginxproxymanager.com/

Nginx Proxy Manager Özellikleri

  • Tablo Tabanlı Güzel ve Güvenli Yönetici Arayüz.
  • Nginx hakkında hiçbir şey bilmeden kolayca yönlendirme etki alanları, yönlendirmeler, akışlar ve 404 ana bilgisayar oluşturun.
  • Let's Encrypt kullanarak ücretsiz SSL veya kendi özel SSL sertifikalarınızı sağlayın.
  • Ana bilgisayarlarınız için Erişim Listeleri ve temel HTTP Kimlik Doğrulaması
  • Süper kullanıcılar için gelişmiş Nginx yapılandırması mevcuttur
  • Kullanıcı yönetimi, izinler ve denetim günlüğü

Ön Gereksinimler

  • Ubuntu 20.04 Sunucu
  • Root ve ya sudo yetkilerine sahip bir kullanıcı
  • Sunucu Üzerinde Docker ve Docker Compose kurulu olmalı
  • SSL için DNS Sunucu Üzerinde A Record  (www.example.com)
  • Firewall aktif ise 80,443 ve 81 portlarına izin verilmesi

https://nginxproxymanager.com/setup/#running-the-app

Nginx Proxy Manager Kurulum

Sunucu paket listesini ve uygulamaları güncelleyin. Sonrasında sunucuyu yeniden başlatın.

sudo apt update -y && sudo apt upgrade -y && sudo reboot now

Güvenlik duvarının çalışıp çalışmadığını kontrol edin.

sudo ufw status

Çalışıyorsa, 80, 81,443 ve OpenSSH servisi ve bağlantı noktalarını açın.

sudo ufw allow 80
sudo ufw allow 81
sudo ufw allow 443
sudo ufw allow "OpenSSH"

Değişiklikleri uygulamak için yeniden yükleyin.

sudo ufw reload

Çalışmıyorsa güvenlik duvarını etkinleştirin.

sudo ufw enable

Docker ve Docker Compose kurulu olduğunu doğrulayın.

docker --version
docker-compose --version 

Şimdi bir docker-compose.yml dosyasını editör ile oluşturup açalım.

sudo vi docker-compose.yml 

Aşağıdaki satırları açılan dosyaya kopyalayalım.

  • Nginx Proxy Manager, Web Admin Portu  varsayılan olarak 81 ayarlanmıştır. Farklı bir port verip firewall üzerinden izin verebilirsiniz.
  • Veritabanı için yazdığınız parolayı proxy servisinde de aynı şekilde değiştirmeyi unutmayın. “ database-password
version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "database-user"
      DB_MYSQL_PASSWORD: "database-password"
      DB_MYSQL_NAME: "proxy-admin"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'database-root-user'
      MYSQL_DATABASE: 'proxy-admin'
      MYSQL_USER: 'database-user'
      MYSQL_PASSWORD: 'database-password'
    volumes:
      - ./data/mysql:/var/lib/mysql

Şimdi compose dosyamızı ayağa kaldıralım.

docker-compose up -d 

Uygulama ilk kez çalıştırıldıktan sonra aşağıdakiler gerçekleşir.

  • Veritabanı tablo yapılarıyla başlatılacaktır.
  • GPG anahtarları oluşturulacak ve yapılandırma dosyasına kaydedilecektir.
  • Varsayılan bir yönetici kullanıcı oluşturulacak.

Bu işlem, makinenize bağlı olarak birkaç dakika sürebilir. 

Servisler ayağa kalktığı zaman sunucunun ip adresine giderek admin sayfasına gidiyoruz. 

 http://your-ip-addr:81

Varsayılan Yönetici Kullanıcısı

Email:    admin@example.com
Password: changeme

Varsayılan kullanıcı ile giriş yapalım.

Giriş yaptıktan hemen sonra, bilgilerinizi  ve parolanızı değiştirmeniz istenecektir.

Nginx Proxy Manager kullanıma hazır.

Blog'a Dön