GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7でVarnishを使用するようにMagento2を構成します

ページ速度または読み込み時間は、オンラインストアの成功にとって非常に重要です。読み込み時間は、特定のページのコンテンツが読み込まれるまでにかかる合計時間です。ロード時間が長いほど、コンバージョン率は低くなります。これは、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.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;
    }
}

また、デフォルトのNginxサーバーブロックをnginx.confから削除する必要があります ファイル。次の行にコメントを付けるか削除します。

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

変更を有効にするために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を削除します 黄色で強調表示された行の一部:

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

デフォルトでは、Varnishはポート6081でリッスンします 、そしてそれを80に変更する必要があります :

/etc/varnish/varnish.params
VARNISH_LISTEN_PORT=80

変更が完了したら、Varnishサービスを開始して有効にします。

sudo systemctl enable varnishsudo systemctl start varnish

varnishlogを使用できます リアルタイムのWebリクエストを表示し、Varnishをデバッグするためのツール。


Cent OS
  1. CentOSにVarnishCacheをインストールする方法

  2. CentOS/UbuntuでSSL/TLS(FTPS)を使用するようにvsftpdを構成する方法

  3. CentOS7でOpenSSHを構成する方法

  1. CentOS 6 /RHEL6でVNCを構成する

  2. Centos8でSaltを使用する方法

  3. CentOS7でApache仮想ホストを構成する

  1. CentOS7にMagento2をインストールします

  2. CentOS7にMagento2.1をインストールする方法

  3. CentOS7でTLSセッションを使用するようにPureFTPdを構成する方法