ページ速度または読み込み時間は、オンラインストアの成功にとって非常に重要です。読み込み時間は、特定のページのコンテンツが読み込まれるまでにかかる合計時間です。ロード時間が長いほど、コンバージョン率は低くなります。これは、Googleが検索エンジンのランキングを決定するために考慮する最も重要な要素の1つでもあります。
最初の投稿では、CentOS7マシンにMagento2をインストールしました。このシリーズの2回目の投稿では、Magentoストアを超高速にするためのVarnishのインストールと構成について説明します。
前提条件#
最初の投稿の指示に従い、EPEL
を持っていることを確認してください リポジトリが有効になっています。
仕組み#
VarnishはSSLをサポートしていないため、SSLターミネーションプロキシとして別のサービスを使用する必要があります。この場合はNginxになります。
訪問者がHTTPS
を介してWebサイトを開いたとき ポート443
リクエストは、プロキシとして機能し、リクエストをVarnish(ポート80)に渡すNginxによって処理されます。 Varnishは、リクエストがキャッシュされているかどうかをチェックします。キャッシュされている場合、VarnishはMagentoアプリケーションへのリクエストなしで、キャッシュされたデータをNginxに返します。リクエストがキャッシュされていない場合、Varnishはリクエストをポート8080
でNginxに渡します。 Magentoからデータをプルし、Varnishが応答をキャッシュします。
訪問者がSSL
なしでウェブサイトを開いた場合 ポート80
その後、彼はHTTPS
にリダイレクトされます ポート443
ワニスによるURL。
Nginxの構成#
最初の投稿で作成したNginxサーバーブロックを編集して、SSL / TLSターミネーションを処理し、Varnishのバックエンドとして使用する必要があります。
/etc/nginx/conf.d/example.com.confupstream 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;
}
}
また、デフォルトの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 {
# }
# }
...
変更を有効にするためにNginxserviceをリロードします:
sudo systemctl reload nginx
ワニスのインストールと構成#
Varnishは、Webサーバーの前に配置される高速リバースプロキシHTTPアクセラレータであり、Full Page Cache
として使用されます。 Magentoインストールのソリューション。
次のコマンドを使用して、yum経由でVarnishをインストールします。
sudo yum install varnish
ワニスの実行を使用するようにMagentoを構成するには:
php /opt/magento/public_html/bin/magento config:set --scope=default --scope-code=0 system/full_page_cache/caching_application 2
次に、Varnish構成ファイルを生成する必要があります:
sudo php /opt/magento/public_html/bin/magento varnish:vcl:generate > /etc/varnish/default.vcl
上記のコマンドは、rootまたはsudo権限を持つユーザーとして実行する必要があり、ファイル/etc/varnish/default.vcl
を作成します。 localhost
であるデフォルト値を使用します バックエンドホストおよびポートとして8080
バックエンドポートとして。
デフォルト設定では、ヘルスチェックファイルのURLが間違っています。 default.vcl
を開きます ファイルを作成し、/pub
を削除します 黄色で強調表示された行の一部:
...
.probe = {
# .url = "/pub/health_check.php";
.url = "/health_check.php";
.timeout = 2s;
.interval = 5s;
.window = 10;
.threshold = 5;
}
...
デフォルトでは、Varnishはポート6081
でリッスンします 、そしてそれを80
に変更する必要があります :
VARNISH_LISTEN_PORT=80
変更が完了したら、Varnishサービスを開始して有効にします。
sudo systemctl enable varnish
sudo systemctl start varnish
varnishlog
を使用できます リアルタイムのWebリクエストを表示し、Varnishをデバッグするためのツール。