GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Konfigurieren Sie Magento 2 für die Verwendung von Varnish unter CentOS 7

Die Seitengeschwindigkeit bzw. Ladezeit ist entscheidend für den Erfolg Ihres Onlineshops. Die Ladezeit ist die Gesamtzeit, die der Inhalt einer bestimmten Seite zum Laden benötigt. Je länger die Ladezeit ist, desto geringer ist die Conversion Rate. Es ist auch einer der wichtigsten Faktoren, die Google berücksichtigt, um das Suchmaschinenranking zu bestimmen.

Im ersten Beitrag haben wir Magento 2 auf unserem CentOS 7-Rechner installiert. Im zweiten Beitrag dieser Serie behandeln wir die Installation und Konfiguration von Varnish, um unseren Magento-Shop superschnell zu machen.

Voraussetzungen #

Stellen Sie sicher, dass Sie die Anweisungen aus dem ersten Post befolgt haben und dass Sie EPEL haben Repository aktiviert.

Wie es funktioniert #

Varnish unterstützt kein SSL, daher müssen wir einen anderen Dienst als SSL-Terminierungsproxy verwenden, in unserem Fall ist das Nginx.

Wenn ein Besucher Ihre Website über HTTPS öffnet auf Port 443 Die Anfrage wird von Nginx bearbeitet, das als Proxy fungiert und die Anfrage an Varnish (an Port 80) weiterleitet. Varnish prüft, ob die Anfrage zwischengespeichert ist oder nicht. Wenn sie zwischengespeichert sind, gibt Varnish die zwischengespeicherten Daten ohne Anfrage an die Magento-Anwendung an Nginx zurück. Wenn die Anfrage nicht zwischengespeichert wird, leitet Varnish die Anfrage an Nginx auf Port 8080 weiter Dadurch werden Daten aus Magento abgerufen und Varnish speichert die Antwort.

Wenn ein Besucher Ihre Website ohne SSL öffnet auf Port 80 dann wird er auf HTTPS umgeleitet auf Port 443 URL von Varnish.

Nginx konfigurieren #

Wir müssen den Nginx-Serverblock, den wir im ersten Beitrag erstellt haben, bearbeiten, um die SSL/TLS-Beendigung und als Back-End für Varnish zu handhaben.

/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;
    }
}

Wir müssen auch den standardmäßigen Nginx-Serverblock aus der nginx.conf entfernen Datei. Kommentieren oder löschen Sie die folgenden Zeilen:

/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 {
#     }
# }
...

Laden Sie den Nginx-Dienst neu, damit die Änderungen wirksam werden:

sudo systemctl reload nginx

Installieren und Konfigurieren von Varnish #

Varnish ist ein schneller Reverse-Proxy-HTTP-Beschleuniger, der vor unserem Webserver sitzt und als Full Page Cache verwendet wird Lösung für unsere Magento-Installation.

Installieren Sie Varnish über yum mit dem folgenden Befehl:

sudo yum install varnish

Um Magento für die Verwendung von Varnish zu konfigurieren, führen Sie Folgendes aus:

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

Als nächstes müssen wir eine Varnish-Konfigurationsdatei generieren:

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

Der obige Befehl muss als Root oder Benutzer mit sudo-Berechtigungen ausgeführt werden und erstellt eine Datei /etc/varnish/default.vcl unter Verwendung der Standardwerte, die localhost sind als Backend-Host und Port 8080 als Backend-Port.

Die Standardkonfiguration enthält eine falsche URL für die Zustandsprüfungsdatei. Öffnen Sie die default.vcl Datei und entfernen Sie /pub Teil der gelb markierten Zeile:

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

Standardmäßig überwacht Varnish Port 6081 , und wir müssen es in 80 ändern :

/etc/varnish/varnish.params
VARNISH_LISTEN_PORT=80

Wenn Sie mit den Änderungen fertig sind, starten und aktivieren Sie den Varnish-Dienst:

sudo systemctl enable varnishsudo systemctl start varnish

Sie können das varnishlog verwenden Tool zum Anzeigen von Webanfragen in Echtzeit und zum Debuggen von Varnish.


Cent OS
  1. Konfigurieren Sie VNC auf CentOS 6 / RHEL 6

  2. So verwenden Sie Salt auf Centos 8

  3. So installieren Sie Varnish Cache auf CentOS

  4. So konfigurieren Sie vsftpd für die Verwendung von SSL/TLS (FTPS) unter CentOS/Ubuntu

  5. So konfigurieren Sie OpenSSH unter CentOS 7

So konfigurieren Sie OpenNMS unter CentOS 7

So konfigurieren Sie vTiger CRM unter CentOS 7

So konfigurieren Sie die IP-Adresse in CentOS 7 / RHEL 7 und CentOS 6 / RHEL 6

So installieren Sie Magento auf CentOS 6

So installieren und konfigurieren Sie GlusterFS unter CentOS 7/CentOS 8

So installieren Sie Varnish unter CentOS 7