Server Teknik VDS

Ubuntu Nginx Load Balancer Kurulumu ve Yapılandırması

İlk olarak paketlerimizi güncelliyoruz.
sudo apt update
sudo apt upgrade
Diğer bir adım olarak nginx’i şu şekilde yüklüyoruz.
sudo apt install nginx
Sunucumuzu sistemimize çok basit bir şekilde kurulumunu yaptık. Şimdi port kontrolü yapmamız gerekiyor. Bunun için şu parametreyi kullanacağız,
sudo ufw app list
Bu adımda HTTP bağlantı noktası trafiğine izin verelim ve etkinleştirelim.
sudo ufw allow ‘Nginx http’ (tırnbakları ssh açınca düzelt)
Servis çalışıyor mu kontrol et
systemctl status nginx
SSL KURULUMU YAPIYORUZ
sudo apt-get install certbot python-certbot-nginx
sudo certbot –nginx
Çıkan sorulara göre işlem yapılacak;
İlk adımda Mail adresi girilecek;
(A)gree/(C)ancel:
A seç
(Y)es/(N)o:
Y seç
Diğer adımda Domain gir örnek mailpanel.musteri.info
Diğer adımda 2 yi seç
1: No redirect – Make no further changes to the webserver configuration.
2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for

IMPORTANT NOTES: kısmını komple kopyala orada yazan yollar sonraki adımlarda lazım olacak örnek;

– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mailpanel.musteri.info/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mailpanel.musteri.info/privkey.pem

Nginx kontrol için;
sudo nginx –t
Aşağıdaki ekran gözükmesi gerekiyor
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Config ayarını girmek için aşağıdaki kodu çalıştır;
nano /etc/nginx/conf.d/roundcubeloadbalance.conf
Dosyanın içine aşağıdaki kodu kopyalayıp kendimize göre düzenliyoruz;

upstream app {
ip_hash;
server 94.102.1.17:80 max_fails=3 fail_timeout=30s;
#server IPHERE:80;
}

server {
listen 80 default_server;
server_name mailpanel.musteri.info;

# Requests to /.well-known should look for local files
location /.well-known {
root /var/www/html;
try_files $uri $uri/ =404;
}

# All other requests get load-balanced
location / {
return 301 https://$server_name$request_uri;
}
}

server {
listen 443 ssl default_server;

server_name mailpanel.musteri.info;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 24h;
keepalive_timeout 300s;

ssl_certificate /etc/letsencrypt/live/mailpanel.musteri.info/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mailpanel.musteri.info/privkey.pem;

charset utf-8;

location / {
include proxy_params;
proxy_pass http://app;
proxy_redirect off;

# Handle Web Socket connections
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
}
}

Default web sitesi açılmaması için aşağıdaki kod ile default tanımı siliyoruz
sudo rm /etc/nginx/sites-enabled/default
restart ediyoruz;
service nginx restart