Cara menggunakan php-fpm high load configuration

Cara menggunakan php-fpm high load configuration

Load Balancing adalah sebuah mekanisme untuk membagi atau mendistribusikan trafik ke beberapa server. Nginx selain berfungsi sebagai web server bisa juga berfungsi sebagai load balancer.

Metode Load Balancing

  1. Round Robin: mendistribusikan trafik ke setiap server secara bergantian.
  2. Least Connections: mendistribusikan trafik ke server yang paling sedikit koneksi aktifnya.
  3. IP Hash: mendistribusikan trafik ke server yang sama ketika visitor pertama kali melakukan request.
Cara menggunakan php-fpm high load configuration
Topologi Load Balancing

0.Perangkat yang digunakan

Perangkat yang digunakan di tutorial ini:

  • OS Ubuntu 18.04 LTS
  • Nginx web server
  • PHP-FPM 7.2
  • Node1: 10.130.127.167
  • Node2: 10.130.128.35
  • LoadBalancer: 128.199.187.215
  • Domain: defnex.com

1.Install Nginx dan PHP-FPM di Node

Install Nginx di Node1 dan Node2.

sudo apt install nginx php php-fpm-y

sudo systemctl status nginx

sudo systemctl status php7.2-fpm

Membuat file index.php di Node1.

sudp mkdir/var/www/defnex.com

sudo echo"<h2>node1</h2>"> /var/www/defnex.com/index.php

Membuat file index.php di Node2.

sudo mkdir/var/www/defnex.com

sudo echo"<h2>node2</h2>"> /var/www/defnex.com/index.php

Membuat server block di Node1 dan Node2.

sudo nano/etc/nginx/conf.d/defnex.com.conf

File konfigurasi server block.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

server{

    listen80;

    server_name defnex.com www.defnex.com;

    root /var/www/defnex.com/;

    index index.php index.html index.htm;

    location/ {

        try_files$uri$uri//index.php?$query_string;

    }

    location ~\.php${

        try_files$fastcgi_script_name=404;

        include fastcgi_params;

        fastcgi_pass                    unix:/var/run/php/php7.2-fpm.sock;

        fastcgi_index                   index.php;

        fastcgi_param DOCUMENT_ROOT     $realpath_root;

        fastcgi_param SCRIPT_FILENAME   $realpath_root$fastcgi_script_name;

    }

    access_log /var/log/nginx/defnex.com.access.log;

    error_log /var/log/nginx/defnex.com.error.log warn;

}

Uji dan restart Nginx.

sudo nginx-t

sudo systemctl restart nginx

sudo systemctl status nginx

2.Install dan Konfigurasi Nginx di Load Balancer

Install Nginx.

sudo apt install nginx-y

sudo systemctl status nginx

Membuat server block untuk load balancing domain defnex.com.

sudo nano/etc/nginx/conf.d/lb-defnex.com.conf

File konfigurasi server block load balancing domain defnex.com.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

upstreambackend{

    server10.130.127.167;#node1

    server10.130.128.35;  #node2

}

server{

    listen 80;

    server_name defnex.com www.defnex.com;

    location/{

        proxy_redirect      off;

        proxy_set_header    X-Real-IP$remote_addr;

        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header    Host$http_host;

        proxy_pass http://backend;

    }

}

Pada konfigurasi upstream backend dituliskan IP address dari backend server. Secara default metode load balancing yang digunakan adalah Round Robin.

Konfigurasi load balancing jika menggunakan metode Least Connections.

upstreambackend{

least_conn;

    server10.130.127.167;#node1

    server10.130.128.35;  #node2

}

Konfigurasi load balancing jika menggunakan metode IP Hash.

upstreambackend{

ip_hash;

    server10.130.127.167;#node1

    server10.130.128.35;  #node2

}

Uji dan restart Nginx.

sudo nginx-t

sudo systemctl restart nginx

sudo systemctl status nginx

3.Pengujian

Browse domain berulang kali, akan menampilkan halaman dari Node1 dan Node2 secara bergantian.

Cara menggunakan php-fpm high load configuration
Halaman index.php dari Node1
Cara menggunakan php-fpm high load configuration
Halaman index.php dari Node2

selamat mencoba 🙂

Cara menggunakan php-fpm high load configuration