Merhabalar sizlere bugün aktarmaya çalışacağım konu Laravel nginx loadbalance olacaktır. Elimden geldiğince yaptığım işlemlerin sırasını hangi aşamaları kullandığımı sıraları neler yazacağım.
Aşamalar
- Loadbalance için standart makina
- İhtiyaç durumuna göre dedicated server / vps makina
- CentOS işletim sistemi ” CentOS 7 kullanıldığını vurgulamak isterim “
- Github hesabı
İlk Aşama Nginx Kurulumu
- yum -y update
- yum install epel-release
- yum install nginx

Nginx servislerini ayarlayalım
- systemctl start nginx ” servisi start edelim “
- systemctl enable nginx ” servisin otomatik başlamasını aktif edelim “
- systemctl status nginx ” servisin durumuna bakalım “

Centos Makinamızda Firewall izinlerimizi ayarlamak
# firewall-cmd –zone=public –permanent –add-service=http
# firewall-cmd –zone=public –permanent –add-service=https
# firewall-cmd –reload
Yukarıdaki her makinamız için kullanacağımız standart kurulum sırasıdır, loadbalance makinamız haricinde bir plesk vs. kullanacaksanız bu işlemleri sadece loadbalance makinamıza uygulamamız yeterli olacaktır.
Loadbalance makinamızın nginx testini browser üzerinden yapmak için : http://ipadresi örnek http://192.168.2.2
Loadbalance makinamıza backend makinamızı tanımlama?
Burada can alıcı bir kaç nokta var ama en önemlisi oluştacağımız conf dosyamız olacaktır.
# cd /etc/nginx/conf.d
# touch server.conf
# nano server.conf
Yukardaki işlemlerin sırası şöyle;
- nginx’in conf.d klasörüne gir
- server.conf adında bir dosya oluştur
- oluşturduğun server.conf dosyasını düzenlemek için aç
Örnek server.conf dosyası
upstream esback {
server xxx.xxx.xx.xx;
}
server {
listen 443 default ssl;
server_name domain.com www.domain.com;
# ssl on;
ssl_certificate /etc/nginx/ssl/www.domain.com.cert;
ssl_certificate_key /etc/nginx/ssl/www.domain.com.key;
ssl_trusted_certificate /etc/nginx/ssl/www.domain.com.cabundle;
location / {
proxy_pass http://esback;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
#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;
}
}
server {
server_name domain.com www.domain.com;
listen 80;
return 301 https://www.domain.com$request_uri;
}
Yukarıda ek olarak birde almış olduğumuz ssl ekledim onuda ;
ssl_certificate /etc/nginx/ssl/www.domain.com.cert;
ssl_certificate_key /etc/nginx/ssl/www.domain.com.key;
ssl_trusted_certificate /etc/nginx/ssl/www.domain.com.cabundle;
satırları ile conf dosyama ekleyerek çağırmasını istedim.
Diğer bir husus burada 80 portuna yani http ile gelen istekleri direk ssl 443 portuna yönlendirme işlemi bulunmaktadır.
server {
server_name domain.com www.domain.com;
listen 80;
return 301 https://www.domain.com$request_uri;
}
Kısaca özet kısmı
Yukarıdaki işlemlerimiz sadece loadbalance makinamızın kurulumu, ssl sertfikalarımızın tanımlanması, 301 yönlendirme ile https yönlendirme, backend serverlarımızın listesini ;
upstream esback {
server xxx.xxx.xx.xx;
}
kod bloğu ile tanımlamalarını yaptık. Elbetteki burada birden fazla bir server listesi ekleyip, genişlik ayarı,zaman aşımı gibi ayarlarıda yapabilmektesiniz.
Bir sonraki yazımda backend makinasının kurulumu ve github hesabı ile ilgili dosyaların çekilmesi hakkında bilgi vereceğim.