GNU/Linux >> Belajar Linux >  >> Cent OS

Konfigurasikan Magento 2 untuk menggunakan Varnish di CentOS 7

Kecepatan halaman atau waktu pemuatan sangat penting untuk keberhasilan toko online Anda. Waktu pemuatan adalah jumlah total waktu yang dibutuhkan konten pada halaman tertentu untuk memuat. Semakin lama waktu pemuatan, semakin rendah tingkat konversi. Ini juga merupakan salah satu faktor terpenting yang dipertimbangkan Google untuk menentukan peringkat mesin telusur.

Di posting pertama, kami menginstal Magento 2 di mesin CentOS 7 kami. Di postingan kedua dari seri ini, kita akan membahas cara menginstal dan mengonfigurasi Varnish untuk membuat toko Magento kita menjadi super cepat.

Prasyarat #

Pastikan kamu sudah mengikuti petunjuk dari postingan pertama dan kamu sudah memiliki EPEL repositori diaktifkan.

Cara kerjanya #

Varnish tidak mendukung SSL, jadi kami perlu menggunakan layanan lain sebagai Proxy Pemutusan SSL, dalam kasus kami adalah Nginx.

Saat pengunjung membuka situs web Anda melalui HTTPS pada port 443 permintaan akan ditangani oleh Nginx yang berfungsi sebagai proxy dan meneruskan permintaan ke Varnish (pada port 80). Varnish memeriksa apakah permintaan di-cache atau tidak. Jika di-cache, Varnish akan mengembalikan data yang di-cache ke Nginx tanpa permintaan ke aplikasi Magento. Jika permintaan tidak di-cache, Varnish akan meneruskan permintaan ke Nginx pada port 8080 yang akan menarik data dari Magento dan Varnish akan men-cache respons.

Jika pengunjung membuka situs web Anda tanpa SSL pada port 80 maka dia akan diarahkan ke HTTPS pada port 443 URL menurut Varnish.

Mengonfigurasi Nginx #

Kita perlu mengedit blok server Nginx yang kita buat di posting pertama untuk menangani penghentian SSL/TLS dan sebagai back-end untuk Varnish.

/etc/nginx/conf.d/example.com.conf
upstream fastcgi_backend {
  server   unix:/run/php-fpm/magento.sock;
}

server {
    listen 127.0.0.1:8080;
    server_name example.com www.example.com;

    set $MAGE_ROOT /opt/magento/public_html;
    set $MAGE_MODE developer; # or production

    include snippets/letsencrypt.conf;
    include /opt/magento/public_html/nginx.conf.sample;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    location / {
        proxy_pass http://127.0.0.1;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_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 https;
        proxy_set_header X-Forwarded-Port 443;
    }
}

Kita juga perlu menghapus blok server Nginx default dari nginx.conf mengajukan. Beri komentar atau hapus baris berikut:

/etc/nginx/nginx.conf
...
# server {
#     listen       80 default_server;
#     listen       [::]:80 default_server;
#     server_name  _;
#     root         /usr/share/nginx/html;
#
#     # Load configuration files for the default server block.
#     include /etc/nginx/default.d/*.conf;
#
#     location / {
#     }
#
#     error_page 404 /404.html;
#        location = /40x.html {
#     }
#
#     error_page 500 502 503 504 /50x.html;
#         location = /50x.html {
#     }
# }
...

Muat ulang layanan Nginx agar perubahan diterapkan:

sudo systemctl reload nginx

Memasang dan Mengonfigurasi Pernis #

Varnish adalah akselerator HTTP reverse-proxy cepat yang akan berada di depan server web kami dan akan digunakan sebagai Full Page Cache solusi untuk instalasi Magento kami.

Instal Varnish melalui yum dengan perintah berikut:

sudo yum install varnish

Untuk mengonfigurasi Magento agar menggunakan Varnish, jalankan:

php /opt/magento/public_html/bin/magento config:set --scope=default --scope-code=0 system/full_page_cache/caching_application 2

Selanjutnya, kita perlu membuat file konfigurasi Varnish:

sudo php /opt/magento/public_html/bin/magento varnish:vcl:generate > /etc/varnish/default.vcl

Perintah di atas perlu dijalankan sebagai root atau pengguna dengan hak sudo dan akan membuat file /etc/varnish/default.vcl menggunakan nilai default yaitu localhost sebagai back-end host dan port 8080 sebagai port back-end.

Konfigurasi default dilengkapi dengan URL yang salah untuk file health check. Buka default.vcl file dan hapus /pub bagian dari garis yang disorot dengan warna kuning:

/etc/varnish/default.vcl
...
.probe = {
     # .url = "/pub/health_check.php";
     .url = "/health_check.php";
     .timeout = 2s;
     .interval = 5s;
     .window = 10;
     .threshold = 5;
}
...

Secara default, Varnish mendengarkan pada port 6081 , dan kita perlu mengubahnya menjadi 80 :

/etc/varnish/varnish.params
VARNISH_LISTEN_PORT=80

Setelah Anda selesai dengan modifikasi, mulai dan aktifkan layanan Varnish:

sudo systemctl enable varnishsudo systemctl start varnish

Anda dapat menggunakan varnishlog alat untuk melihat permintaan web waktu nyata dan untuk men-debug Varnish.


Cent OS
  1. Konfigurasi VNC pada CentOS 6 / RHEL 6

  2. Konfigurasikan Apache Virtual Host di CentOS 7

  3. Cara Menginstal Cache Pernis di CentOS

  1. Cara Menggunakan Garam di Centos 8

  2. Cara mengkonfigurasi vsftpd untuk menggunakan SSL/TLS (FTPS) di CentOS/Ubuntu

  3. Cara Konfigurasi OpenSSH di CentOS 7

  1. Instal Magento 2 di CentOS 7

  2. Cara Menginstal Magento 2.1 di CentOS 7

  3. Cara mengonfigurasi PureFTPd untuk menggunakan sesi TLS di CentOS 7