How to Install and Configure NGINX Proxy Manager

NGINX ile uzun uzad覺ya konfig羹rasyonlar yapman覺n daha kolay bir yolu var m覺 acaba? Evet, NGINX Proxy Manager!

How to Install and Configure NGINX Proxy Manager

NGINX ile uzun uzad覺ya konfig羹rasyonlar yapman覺n daha kolay bir yolu var m覺 acaba? Evet, NGINX Proxy Manager!

D羹羹nsenize; t羹m alan adlar覺n覺za ve hatta t羹m alt adlar覺n覺za ters vekil sunucu (reverse proxy) ekliyor hem bir koruma elde ediyorsunuz hem de t羹m alan adlar覺n覺z i癟in otomatik olarak Let's Encrypt ile SSL oluturuyorsunuz. Hem de yaln覺zca birka癟 ad覺mda!

Kurulum ad覺mlar覺na ge癟meden 繹nce unlara sahip olduumuzdan emin olal覺m:

  • Alan ad覺 veya alt alan ad覺 > Sunucu IP'sine y繹nlendirilmi olmal覺. (A Record)
  • Docker ve Docker Compose kurulu bir sunucu. (Alan ad覺 bu sunucuya y繹nlendirilmeli)

Sunucuya SSH ile baland覺ktan sonra nginx proxy managere ait baz覺 container dosyalar覺n覺n saklanmas覺 i癟in /opt alt覺nda nginxproxymanager ad覺nda dizin olutural覺m. Ard覺ndan compose dosyas覺n覺 olutural覺m.

sudo mkdir -p /opt/nginxproxymanager && cd /opt/nginxproxymanager
sudo touch docker-compose.yml

NGINX Proxy Manager, sunucumuzun hem 443 hem de 80 portunu dinlemeli ki http ve https isteklerini alabilsin. Bu y羹zden compose dosyas覺nda bunlar覺 container ile paylamal覺y覺z. Bunun d覺覺nda admin aray羹z羹ne eriebilmek i癟in 8181 portunu da containere balamal覺y覺z.

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
      - '8181: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: "manager"
      DB_MYSQL_PASSWORD: "your-db-password"
      DB_MYSQL_NAME: "proxymanager"
      # 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: 'your-db-root-password'
      MYSQL_DATABASE: 'proxymanager'
      MYSQL_USER: 'manager'
      MYSQL_PASSWORD: 'your-db-password'
    volumes:
      - ./data/mysql:/var/lib/mysql

Dosyay覺 incelediiniz zaman /opt/nginxproxymanager alt覺nda iki farkl覺 dizinin containerlere baland覺覺n覺 g繹receksiniz. Compose dosyas覺 ayaa kald覺r覺ld覺覺 zaman bunlar otomatik olarak oluturulacak. Ancak terminalde pwd yazd覺覺n覺zda ald覺覺n覺z 癟覺kt覺n覺n /opt/nginxproxymanager olduundan emin olun. Ard覺ndan aa覺daki komut ile servislerimizi ayaa kald覺rabiliriz. Ha, unutmadan, veritaban覺 i癟in yazd覺覺n覺z parolay覺 proxy servisinde de ayn覺 ekilde yaz覺覺n覺zdan emin olun.

sudo docker-compose up -d

Servisler ayaa kalt覺覺 zaman sunucunun 8181 portuna giderek admin sayfas覺n覺 a癟abilirsiniz. Varsay覺lan kullan覺c覺 ad覺 ve parola:

Email   : admin@example.com
Password: changeme

Giri yapt覺ktan sonra ilk iiniz email ve password deerlerini deitirmek olsun. 襤kinci iiniz ise SSL sertifikas覺n覺 y繹nlendirmesini yapt覺覺n覺z alan ad覺 i癟in hemen oluturun. Admin UI size bu konuda b羹y羹k kolayl覺k salayacakt覺r.

SSL oluturduktan sonra Proxy Hosts b繹l羹m羹nden alan ad覺n覺z i癟in proxy oluturun ve http servisini se癟in. Port olarak 8181 se癟in. SSL sertifikas覺n覺 da az 繹nce oluturduunuz sertifikay覺 se癟erek kurulumu tamamlay覺n. Art覺k admin sayfas覺na SSL ile ulaabilirsiniz. Tebrikler , haz覺rs覺n覺z!

Eer videolu anlat覺m istiyorsan覺z o da hemen aa覺da!