Instal Nginx dengan Ngx_Pagespeed (Optimasi Kecepatan) di Debian dan Ubuntu
Pada artikel terakhir kami, kami menunjukkan cara mempercepat kinerja Nginx dengan Ngx_Pagespeed di CentOS 7. Dalam tutorial ini, kami akan menjelaskan cara menginstal Nginx dengan ngx_pagespeed di sistem Debian dan Ubuntu untuk meningkatkan kinerja situs web Nginx.
Nginx [engine x] adalah server HTTP populer bersumber terbuka dan gratis yang mendukung banyak situs di web: terkenal dengan kinerja dan stabilitasnya yang tinggi. Ia juga berfungsi sebagai proxy terbalik, email generik, dan server proxy TCP/UDP, dan juga dapat digunakan sebagai penyeimbang beban.
Ngx_pagespeed adalah modul Nginx gratis dan sumber terbuka yang dimaksudkan untuk meningkatkan kecepatan situs serta mengurangi waktu buka halaman; ini secara drastis mengurangi waktu yang dibutuhkan pengguna untuk melihat dan berinteraksi dengan konten di situs Anda.
Bacaan yang Disarankan: Instal Mod_Pagespeed untuk Meningkatkan Kinerja Server Apache
Fitur Ngx_pagespeed:
- Dukungan HTTPS dengan kontrol URL.
- Pengoptimalan gambar: menghapus metadata, pengubahan ukuran dinamis, kompresi ulang.
- Minifikasi, penggabungan, penyisipan, dan penguraian CSS dan JavaScript.
- Sebarisan sumber daya kecil.
- Menunda pemuatan gambar dan JavaScript.
- penulisan ulang HTML.
- Ekstensi seumur hidup cache.
- Memungkinkan konfigurasi untuk beberapa server dan banyak lainnya.
Langkah 1: Instalasi Nginx dari Sumber
1. Untuk menginstal Nginx dengan ngx_pagespeed dari sumber diperlukan paket berikut untuk diinstal pada sistem.
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
2. Selanjutnya, unduh file sumber Nginx versi terbaru (1.13.2 pada saat penulisan ini) menggunakan perintah wget dan ekstrak file seperti yang ditunjukkan di bawah ini.
mkdir -p ~/make_nginx
cd ~/make_nginx
wget -c https://nginx.org/download/nginx-1.13.2.tar.gz
tar -xzvf nginx-1.13.2.tar.gz
3. Selanjutnya, ambil file sumber ngx_pagespeed dan ekstrak file terkompresi seperti ini.
wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip
unzip v1.12.34.2-stable.zip
4. Kemudian pindah ke direktori ngx_pagespeed yang telah dibuka ritsletingnya dan unduh pustaka pengoptimalan PageSpeed untuk mengkompilasi Nginx sebagai berikut.
cd ngx_pagespeed-1.12.34.2-stable/
wget -c https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
tar -xvzf 1.12.34.2-x64.tar.gz
Langkah 2: Konfigurasikan dan Kompilasi Nginx dengan Ngx_Pagespeed
5. Selanjutnya pindah ke direktori nginx-1.13.2, dan konfigurasikan sumber Nginx menggunakan perintah berikut.
cd ~/make_nginx/nginx-1.13.2
./configure --add-module=$HOME/make_nginx/ngx_pagespeed-1.12.34.2-stable/ ${PS_NGX_EXTRA_FLAGS}
6. Selanjutnya, kompilasi dan instal Nginx sebagai berikut.
make
sudo make install
7. Setelah proses instalasi selesai, jalankan perintah di bawah ini untuk membuat symlink yang diperlukan untuk Nginx.
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
Langkah 3: Membuat File Unit Nginx untuk SystemD
8. Di sini, Anda harus membuat file unit Nginx secara manual karena systemd adalah sistem init pada versi sistem Debian dan Ubuntu yang lebih baru
Pertama, buat file /lib/systemd/system/nginx.service.
sudo vi /lib/systemd/system/nginx.service
Kemudian unduh file layanan sistem NGINX, tempel konfigurasi file unit ke dalam file.
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Simpan file dan tutup.
9. Sekarang, jalankan layanan nginx untuk saat ini, dan aktifkan layanan tersebut untuk memulai saat boot sistem dengan menggunakan perintah di bawah ini.
sudo systemctl start nginx
sudo systemctl enable nginx
Penting: Setelah memulai layanan Nginx, Anda mungkin melihat kesalahan seperti yang ditunjukkan pada cuplikan layar di bawah.
systemd[1]: nginx.service: PID file /run/nginx.pid not readable (yet?) after start: No such file or directory
Untuk mengatasinya, buka file konfigurasi Nginx /etc/nginx/nginx.conf dan tambahkan baris berikut.
#pid logs/nginx.pid;
to
pid /run/nginx.pid;
Terakhir restart kembali layanan nginx.
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl status nginx
Langkah 4: Konfigurasikan Nginx Dengan Modul Pagespeed
10. Sekarang setelah Nginx terinstal dan berjalan di sistem Anda, Anda perlu mengaktifkan modul Ngx_pagespeed. Pertama buat direktori tempat modul akan menyimpan file untuk situs web Anda dan atur izin yang sesuai pada direktori ini sebagai berikut.
sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R nobody:nogroup /var/ngx_pagespeed_cache
11. Untuk mengaktifkan modul Ngx_pagespeed, buka file konfigurasi Nginx.
sudo vi /etc/nginx/nginx.conf
Tambahkan baris konfigurasi Ngx_pagespeed berikut dalam blok server.
Pagespeed main settings
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
Ensure requests for pagespeed optimized resources go to the pagespeed
handler and no extraneous headers get set.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }
Catatan: Jika Anda telah menerapkan host virtual nginx apa pun di server, tambahkan arahan kecepatan halaman di atas ke setiap blok server untuk mengaktifkan Ngx_pagespeed di setiap situs.
Berikut ini adalah contoh kerja file konfigurasi Nginx dengan Ngx_pagespeed diaktifkan di host virtual default.
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
# Pagespeed main settings
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
# Ensure requests for pagespeed optimized resources go to the pagespeed
# handler and no extraneous headers get set.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
Simpan dan tutup file.
12. Kemudian periksa apakah sintaks file konfigurasi Nginx sudah bebas error dengan menjalankan perintah di bawah ini, jika sudah benar maka akan terlihat output seperti di bawah ini:
sudo nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
13. Setelah itu restart server Nginx untuk menerapkan perubahan terkini.
sudo systemctl restart nginx
Langkah 5: Menguji Nginx dengan Ngx_pagespeed
14. Sekarang uji apakah Ngx-pagespeed sekarang berfungsi bersama dengan Nginx menggunakan perintah cURL di bawah.
curl -I -p http://localhost
Jika Anda gagal melihat header di atas, kembali ke langkah 10 dan ikuti petunjuk dengan cermat untuk mengaktifkan Ngx-pagespeed dengan langkah-langkah berturut-turut.
Repositori Github Ngx-pagespeed: https://github.com/pagespeed/ngx_pagespeed
Jika Anda ingin mengamankan server web Nginx, kami sarankan untuk membaca tutorial bermanfaat ini: Panduan Utama untuk Mengamankan, Memperkuat, dan Meningkatkan Kinerja Nginx.
Hanya itu saja! Dalam tutorial ini, kami menjelaskan cara menginstal Nginx dengan ngx_pagespeed di Debian dan Ubuntu. Jika Anda memiliki pertanyaan, kirimkan kepada kami menggunakan formulir komentar kami di bawah.