nginx proxy management
Nginx’i proxy olarak kullanımını kolaylaştıran bir arayüz. Kaynak adresi https://nginxproxymanager.com/.
Kurulumu
Aşağıdaki docker-compose dosyası 1 nginx proxy management konteyneri ve 2 web sunucu ayaklandıracaktır.
version: '2'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
# Eğer proxy manager'a ekleyeceğimiz host'lar proxy ile aynı
# makinada çalışıyorlarsa yani üzerine gelen trafiği proxy
# manager'ın host sunucusunun farklı portlarındaki konteynerlere
# yönlendirecekse network_mode:host seçilebilir.
# proxy manager böylece 127.0.0.1 adresine yönlendirdiğinde
# host'un kendisinde port mapping yapılan
# konteynerlere trafiği akıtır.
# network_mode: host
#
# Eğer docker desktop kurulu windows host'un üstündeki
# konteynerlere trafiği yönlendirecekse
# örneğin host.docker.internal:8002 veya
# host.docker.internal:8003 gibi proxy host ve port yazılabilir.
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt# Aşağıdaki konteynerler 8002 ve 8003 portunda çalışıp nginx-proxy
# http://debian.local
# http://registry.local
# adreslerinden uygulamalara yönlendirme yapar
web1:
image: nginxdemos/hello
container_name: web-sunucu-8002
ports:
- '8002:80'
web2:
container_name: web-sunucu-8003
image: nginxdemos/hello
ports:
- '8003:80'
Proxy Host Tanımlar
localhost:81 adresinde ayaklanmış olacak nginx proxy manager’da host tanımları yapacağız.
Hosts -> Proxy Hosts
Örneğin bir alt alan adımız yönetimin, diğeri ise kullanıcıların erişiminde olacak iki farklı adresi işaret etsin.
8003 Portunda çalışan web sunucumuz kullanici.alanadi.com.tr adresine hizmet versin.
Listemiz tamamlandı.
Hedef sunucu adresi olarak host.docker.internal adresini kullanıyoruz çünkü windows üstünde çalışan docker desktop ile windows makinasına erişmek için bu adı kullanmalıyız.
Eğer nginx proxy management konteyneri için — network=host ayarını yapmış olsaydık bu kez 127.0.0.1 adresini göstermemiz yeterli olacaktı.
Şimdi yonetim.alanadi.com.tr ve kullanici.alanadi.com.tr adreslerinin nginx proxy management kurulu olan sunucuya yönlendirilmesi gerekiyor. Uyguladığımız örnekte hepsi aynı sunucu yani 127.0.0.1 adresinde çalıştığı için ayar şöyle olacak:
127.0.0.1 yonetim.alanadi.com.tr
127.0.0.1 kullanici.alanadi.com.tr