Diyelimki elimizde 1 tane public ipv4 ip adresi ve 5 tane https olarak çalışması gerekli olan web serveriniz var.
sunucuların bir kısmı Linux bir kısmı windows server olabilir tabiki :)
5 site için ayrı ayrı ipv4 adresi tahsis etmek yerine Nginx i proxy olarak kullanarak tüm serverleri yayına alabilirsiniz.
Serverleriniz için daha güvenli bir ortama kavuşursunuz. Aşağıdaki diyagramdaki gibi yalıtılmış bir ortam oluşur.
ubuntu üzerinde sadece nginx kurmak yeterli olacaktır.
mevcut ipv4 adresimizi nginx sunucuya tahsis etmeliyiz.
hadi başlayalim.
sudo apt-get install nginx -y
önce default ayarı silelim.
sudo rm /etc/nginx/sites-enabled/default
Vhost dosyamızı oluşturalım.
sudo nano /etc/nginx/sites-available/demo.com.conf
# default olarak 80 üzerinden gelen istekleri https portuna yönlendir.
#-----8< ---- 8< ------ 8< ------ 8< ------
server {
listen 80;
server_name example.demo.com;
return 301 https://example.demo.com$request_uri;
}
server {
listen 443 ssl;
server_name example.demo.com;
ssl_certificate /path/to/your/certificate;
ssl_certificate_key /path/to/your/certificate/key;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://10.20.30.40:8091;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
#-----8< ---- 8< ------ 8< ------ 8< ------
kaydedip çıkın.
siteyi aktif hale getirelim
sudo ln -s /etc/nginx/sites-available/demo.com.conf /etc/nginx/sites-enabled/demo.com.conf
Nginx yapılandırmasını test edelim.
sudo nginx -t
Herşey yolunda ise nginx i yeniden başlatalım.
sudo nginx -s reload
eğer yönetim için görsel arayüz isterseniz ve oldukça fazla alan adınız varsa
nginxproxymanager kullanmanızı tavsiye ederim.
https://nginxproxymanager.com/
nginxproxymanager Docker ile kullanılabilmektedir.
Kolay gelsin :)