GNU/Linux >> Belajar Linux >  >> Linux

Cara Setup Nginx Cache di LEMP Server

Nginx adalah server web sumber terbuka gratis, belum lagi salah satu server web yang paling banyak digunakan di dunia. Ini dapat digunakan sebagai proxy terbalik, proxy surat, penyeimbang beban, dan server caching. Nginx sangat terukur dan dirancang khusus untuk kinerja dan stabilitas maksimum. Ini menggunakan arsitektur yang digerakkan oleh peristiwa dan menangani setiap permintaan yang masuk dalam satu utas.

Nginx hadir dengan modul FastCGI yang dapat digunakan untuk menyimpan konten dinamis yang disajikan dari backend PHP. Anda tidak perlu menyiapkan solusi caching lain seperti Redis, Varnish, Memcache setelah menyiapkan Nginx dengan cache FastCGI.

Dalam tutorial ini, kami akan menunjukkan cara mengatur cache Nginx FastCGI dengan LEMP di Ubuntu 18.04.

Prasyarat

  • VPS Ubuntu 18.04 baru di Platform Cloud Atlantic.Net
  • Kata sandi root yang dikonfigurasi di server Anda

Langkah 1 – Buat Server Cloud Atlantic.Net

Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 18.04 sebagai sistem operasi, dengan setidaknya 1GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.

Setelah Anda masuk ke server Ubuntu 18.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.

apt-get update -y

Langkah 2 – Instal Server LEMP

Mari kita mulai dengan menginstal LEMP (Nginx, PHP, PHP-FPM) di server Anda.

apt-get install nginx php php-cli php-fpm -y

Perintah di atas juga akan menginstal server web Apache di sistem Anda, jadi Anda harus menghentikan dan menonaktifkan layanan Apache.

systemctl stop apache2
systemctl disable apache2

Selanjutnya, jalankan layanan Nginx dan PHP-FPM dengan perintah berikut:

systemctl start nginx
systemctl start php7.2-fpm

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Langkah 3 – Buat Situs Web Contoh

Pertama, buat direktori untuk situs web Anda dengan perintah berikut:

mkdir /var/www/html/example.com

Selanjutnya, buat contoh file info.php di dalam direktori situs web Anda:

nano /var/www/html/example.com/info.php

Tambahkan baris berikut:

<?php phpinfo(); ?>

Simpan dan tutup file. Kemudian, ubah kepemilikan situs web Anda menjadi pengguna www-data:

chown -R www-data:www-data /var/www/html/example.com
chmod -R 755 /var/www/html/example.com

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Langkah 4 – Konfigurasi Nginx dengan FastCGI Cache

Selanjutnya, Anda perlu membuat file konfigurasi virtual host Nginx baru untuk melayani situs web Anda dan mengaktifkan cache FastCGI.

nano /etc/nginx/sites-available/example.com.conf

Tambahkan baris berikut:

# Enable FastCGI Support
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=nginxcache:150m max_size=1g 
inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
add_header X-Cache $upstream_cache_status;

server {
listen 80;
root /var/www/html/example.com;
client_max_body_size 256M;
index info.php;
server_name example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location = /favicon.ico { access_log off; log_not_found off; }

#Disable caching for login session, user cookie, POST request, query string, site map and feeds
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}

# Enable caching for your website.
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index info.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_cache nginxcache;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;

}
}

Simpan dan tutup file setelah Anda selesai, lalu periksa Nginx apakah ada kesalahan sintaks dengan perintah berikut:

nginx -t

Anda akan mendapatkan output berikut:

Selanjutnya, aktifkan file virtual host Nginx dengan perintah berikut:

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Terakhir, muat ulang layanan Nginx untuk menerapkan perubahan:

systemctl restart nginx

Penjelasan singkat dari masing-masing direktif dalam file konfigurasi di atas ditunjukkan di bawah ini:

  • fastcgi_cache_path membuat cache FastCGI dan menentukan lokasi cache, nama zona memori (nginxcache) dengan ukuran (150M), max_size (1G), dan menentukan kunci untuk pencarian cache.
  • tambahkan_header digunakan untuk memvalidasi apakah permintaan telah dilayani dari cache FastCGI atau tidak.
  • fastcgi menentukan jalur soket php-fpm.
  • fastcgi_cache mengaktifkan caching, yang telah kami tentukan menggunakan zona memori di direktif fastcgi_cache_path.
  • fastcgi_cache_valid menyetel waktu cache dengan kode status 200, 301, 302 akan di-cache selama 60 menit.
  • fastcgi_cache_lock hanya mengizinkan permintaan pertama melalui server PHP-FPM upstream.

Langkah 5 – Uji Nginx FastCGI Cache

Pada titik ini, Nginx diinstal dan dikonfigurasi dengan dukungan FastCGI Cache. Saatnya memverifikasi apakah caching berfungsi atau tidak.

Buka browser web Anda, akses server web Nginx Anda menggunakan URL http://example.com, dan muat ulang halaman beberapa kali.

Selanjutnya, buka terminal Anda dan jalankan perintah berikut untuk mengambil header respons http.

curl -I http://example.com

Anda akan mendapatkan output berikut:

HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Fri, 24 Apr 2020 16:07:24 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Cache: HIT

Dari output di atas, X-Cache:HIT menunjukkan bahwa respons disajikan dari cache.

Kesimpulan

Selamat! Anda telah berhasil mengonfigurasi Nginx dengan dukungan FastCGI Cache. Setelah mengaktifkan caching, Anda akan melihat peningkatan besar dalam kinerja karena halaman dimuat tanpa harus dirender oleh PHP. Cobalah FastCGI Cache di Nginx hari ini dengan layanan hosting VPS Atlantic.Net.


Linux
  1. Cara Mengarahkan HTTP ke HTTPS di Nginx

  2. Cara Menginstal LEMP di Ubuntu 16.04

  3. Bagaimana cara Setup Server NTP di CentOS?

  1. Cara Mengatur Server LEMP di Debian 10 Buster

  2. Cara Mengatur Blok Server Nginx Di Ubuntu 18.04 LTS

  3. Cara Memasang LEMP Stack di Server/Desktop Ubuntu 20.04

  1. Cara Menginstal Server LEMP di CentOS 8

  2. Cara Menginstal Nginx di Ubuntu 14.04

  3. Cara Menginstal Nginx di Debian 7