Nginx Proxy Manager, alan adından gelen isteği doğru uygulamaya iletir ve HTTPS sertifikalarını yönetir. Uygulamanın kendisini kurmaz. Bu rehberde Docker ağı üzerinden erişilen bir uygulamayı alan adına bağlayacağız.
1. Portları ve Docker’ı kontrol edin
Docker Engine ve Compose hazır olmalı. Gerekirse resmi Docker kurulumunu tamamlayın:
bashsudo docker compose version
sudo ss -lntp80/443 portları başka panel veya proxy tarafından kullanılıyorsa önce mimariyi netleştirin. Çalışan servisi rastgele durdurmayın. Bu örnek, bu portların boş olduğu ayrı sunucu içindir.
2. Compose dosyası
Sunucuda çalışma dizinini oluşturun:
bashsudo mkdir -p /opt/npm
cd /opt/npm
sudo nano compose.yamlDosyaya aşağıdaki içeriği ekleyin. 2.15.1 burada resmi kurulum belgesindeki sürüm örneğidir; kurulum günü sürüm notlarını kontrol edin:
yamlservices:
proxy:
image: jc21/nginx-proxy-manager:2.15.1
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "127.0.0.1:81:81"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
- proxy_net
networks:
proxy_net:
name: proxy_netbashsudo docker compose config
sudo docker compose up -d
sudo docker compose logs --tail 50data ve letsencrypt dizinlerini koruyun; konteynerin yeniden oluşturulması bu dizinlerin silinmesini gerektirmez.
3. Yönetim ekranı
Kendi bilgisayarınızdan:
bashssh -N -L 8181:127.0.0.1:81 root@SUNUCU_IPhttp://localhost:8181 adresini açıp sürümün ilk kullanıcı akışını tamamlayın. İnternetteki eski rehberlerde bulunan varsayılan parolaya güvenmeyin. Yönetim portu bu örnekte internete yayımlanmaz.
4. Uygulamayı aynı ağa bağlayın
Uygulamanızın Compose dosyasında ilgili servise proxy_net ağını ekleyin ve dosyanın ağ tanımını şu şekilde yapın:
yamlnetworks:
proxy_net:
external: true
name: proxy_netServis bölümüne de networks: [proxy_net] eklenmelidir. Yalnız dosyanın altına ağ tanımı eklemek servisi ağa bağlamaz. Yeniden oluşturma öncesi uygulamanın kalıcı verisinin volume üzerinde olduğundan emin olun.
Resmi ağ rehberinde anlatıldığı gibi hedef olarak uygulamanın servis adını ve konteyner içi portunu kullanın. Proxy konteynerindeki localhost, diğer uygulamanız değildir.
5. Proxy host ve sertifika
Alan adının A/AAAA kayıtlarını proxy sunucusuna yönlendirin. Proxy Hosts altında alan adı, hedef servis adı, protokol ve iç portu girin. Örneğin web servisi 3000’de dinliyorsa hedef web:3000 olur. Uygulama WebSocket kullanıyorsa ilgili desteği açın.
Önce HTTP yönlendirmesini test edin. Ardından SSL bölümünde Let’s Encrypt sertifikası isteyin ve başarılı olduktan sonra HTTPS zorlamasını etkinleştirin. HTTP doğrulaması kullanıyorsanız alan adı internetten 80 portuna ulaşabilmelidir.
6. 502 ve yedekleme
502 hatasında uygulama çalışıyor mu, aynı ağda mı, doğru portta mı kontrol edin. Sertifika hatasında ise DNS, 80/443 ve varsa CAA kaydını inceleyin. data ile letsencrypt dizinlerini tutarlı bir bakım yedeğinde birlikte saklayın; uygulamanın verisi ayrıca yedeklenir. DNS rehberi ve Docker rehberi ile devam edin.
