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

CentOS8でNginxを使用してVarnishCache6をインストールおよびセットアップする方法

Varnish Cacheは、WebサイトおよびAPI用の無料のオープンソースリバースプロキシHTTPアクセラレータです。 HTTPで実行されているWebサーバーの前にリバースプロキシとしてインストールできます。 Webサーバーとブラウザの間に配置され、Webページ、Cookie、およびその他のデータをメモリに保存します。このキャッシュは、まったく同様のコンテンツに対する今後のすべてのリクエストを処理するために使用されます。これにより、Webアプリケーションの負荷が増加し、Webサーバーのパフォーマンスが300倍以上向上します。

このチュートリアルでは、Nginxサーバーをバックエンドサーバーとして設定し、ポート8080でリッスンするように構成してから、デフォルトのHTTPポート80でリッスンするようにVarnishキャッシュを構成します。

前提条件
  • CentOS8を実行しているサーバー。
  • ルートパスワードがサーバーに設定されます。

NginxWebサーバーのインストールと構成

まず、システムにNginxWebサーバーをインストールする必要があります。次のコマンドでインストールできます:

dnf install nginx -y

インストールしたら、次のコマンドを使用してNginxサービスを開始し、システムの再起動時に開始できるようにします。

systemctl start nginx
systemctl enable nginx

デフォルトでは、Nginxはポート80でリッスンしています。したがって、ポート80でリッスンするようにNginxを構成する必要があります。Nginxのデフォルト構成ファイルを編集して構成できます。

nano /etc/nginx/nginx.conf

次の行を見つけます:

        listen       80 default_server;
        listen       [::]:80 default_server;

そして、それらを次の行に置き換えます。

        listen       8080 default_server;
        listen       [::]:8080 default_server;

終了したら、ファイルを保存して閉じます。次に、Nginxサービスを再起動して、変更を適用します。

systemctl restart nginx

この時点で、Nginx Webサーバーがインストールされ、ポート8080でリッスンしています。次のコマンドを使用して確認できます。

netstat -tpln | grep 8080

次の出力が得られるはずです:

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      30367/nginx: master 
tcp6       0      0 :::8080                 :::*                    LISTEN      30367/nginx: master 
Varnishキャッシュをインストール

デフォルトでは、VarnishパッケージはCentOS8のデフォルトリポジトリで利用できます。次のコマンドを実行するだけでインストールできます:

dnf module install varnish

インストールしたら、次のコマンドを使用してVarnishサービスを開始します。

systemctl start varnish

次のコマンドを使用して、インストールされているVarnishキャッシュのバージョンを確認することもできます。

varnishd -V

次の出力が表示されます。

varnishd (varnish-6.0.2 revision 0458b54db26cfbea79af45ca5c4767c7c2925a91)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2018 Varnish Software AS

Nginx用にワニスを構成する

次に、クライアントからHTTPリクエストを受信するために、ポート80で実行するようにワニスを構成する必要があります。 Varnishのデフォルト設定ファイルを編集して設定できます:

systemctl edit --full varnish

次の行を見つけます:

ExecStart=/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m

そして、それを次の行に置き換えます:

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

終了したら、ファイルを保存して閉じます。

次に、Varnishのバックエンドサーバーを定義する必要があります。これを行うには、Varnishのメイン構成ファイル/etc/varnish/default.vcl:

を編集します。
nano /etc/varnish/default.vcl

次の行を変更します:

backend myserver {
    .host = "127.0.0.1";
    .port = "8080";
}

終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用してsystemdデーモンをリロードします。

systemctl daemon-reload

次に、Varnishサービスを再起動し、次のコマンドを使用してシステムの再起動時に開始できるようにします。

systemctl restart varnish
systemcl enable varnish

次のコマンドを使用して、ワニスのステータスを確認することもできます。

systemctl status varnish

次の出力が得られるはずです:

? varnish.service - Varnish Cache, a high-performance HTTP accelerator
   Loaded: loaded (/etc/systemd/system/varnish.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-08-29 09:36:58 EDT; 12s ago
  Process: 30421 ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m (code=exited, status=0/SUCCESS)
 Main PID: 30424 (varnishd)
    Tasks: 217
   Memory: 91.8M
   CGroup: /system.slice/varnish.service
           ??30424 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
           ??30434 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Aug 29 09:36:57 centos8 systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator...
Aug 29 09:36:58 centos8 varnishd[30421]: Debug: Version: varnish-6.0.2 revision 0458b54db26cfbea79af45ca5c4767c7c2925a91
Aug 29 09:36:58 centos8 varnishd[30421]: Debug: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Aug 29 09:36:58 centos8 varnishd[30424]: Version: varnish-6.0.2 revision 0458b54db26cfbea79af45ca5c4767c7c2925a91
Aug 29 09:36:58 centos8 varnishd[30424]: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Aug 29 09:36:58 centos8 varnishd[30421]: Debug: Child (30434) Started
Aug 29 09:36:58 centos8 varnishd[30424]: Child (30434) Started
Aug 29 09:36:58 centos8 varnishd[30424]: Child (30434) said Child starts
Aug 29 09:36:58 centos8 systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.

次のコマンドを使用して、NginxとVarnishのリスニングポートを確認できるようになりました。

netstat -tpln | grep 80

次の出力が表示されます。

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      30424/varnishd      
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      30367/nginx: master 
tcp6       0      0 :::80                   :::*                    LISTEN      30424/varnishd      
tcp6       0      0 :::8080                 :::*                    LISTEN      30367/nginx: master 
SELinuxとファイアウォールを構成する

デフォルトでは、SELinuxはCentOS 8で有効になっているため、Varnish用にSELinuxを構成する必要があります。次のコマンドで構成できます:

setsebool -P httpd_can_network_connect 1

次に、firewalldを介してポート80を許可する必要があります。次のコマンドで実行できます:

firewall-cmd --permanent --zone public --add-port 80/tcp
firewall-cmd --reload

終了したら、次のステップに進むことができます。

テストVarnishキャッシュ

この時点で、Varnishキャッシュがインストールされ、NginxWebサーバーで構成されます。次に、Varnishキャッシュが機能するかどうかをテストします。

以下に示すように、curlコマンドを使用してテストできます。

curl -I http://localhost

次の出力が表示されます。

																																																																																																																																																																																																																																																																																																																																																																		
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Sat, 29 Aug 2020 13:53:44 GMT
Content-Type: text/html; charset=UTF-8
X-Powered-By: PHP/7.2.24
X-Varnish: 32800
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Accept-Ranges: bytes
Connection: keep-alive
結論

おめでとう! CentOS8にNginxを使用してVarnishCacheを正常にインストールしました。ApacheWebサーバーを使用してVarnishキャッシュを簡単に構成できることを願っています。ご不明な点がございましたら、お気軽にお問い合わせください。


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

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

  3. Nginx、MariaDB、PHP-FPMを使用してCentOS7VPSにVarnishとphpMyAdminをインストールする方法

  1. CentOS8にNginxとPHP7.3でNextcloudをインストールする方法

  2. CentOS7にNginxとMariaDBを使用してownCloud9.1をインストールする方法

  3. CentOS7にHHVMとNginxを使用してWordPressをインストールする方法

  1. CentOS7にNginxとPHP7-FPMを使用してNextcloudをインストールする方法

  2. CentOS7でNginxを使用してAskbotをインストールおよび構成する方法

  3. CentOS7にNginxとPHP-FPM7.1を使用してLaravel5.xをインストールする方法