如何在CentOS 8上使用Nginx安装和设置Varnish Cache 6

如何在CentOS 8上使用Nginx安装和设置Varnish Cache 6

Varnish Cache是​​用于网站和API的免费,开源反向代理HTTP加速器。可以将其作为反向代理安装在通过HTTP运行的Web服务器的前面。它位于Web服务器和浏览器之间,并将网页,Cookie和其他数据存储在内存中。该缓存用于满足以后所有对相同内容的请求。这增加了Web应用程序的负载,并将Web服务器性能提高了300倍以上。

在本教程中,您将Nginx服务器设置为后端服务器,将其配置为侦听端口8080,然后将Varnish缓存配置为侦听默认的HTTP端口80。

先决条件

  • 运行CentOS的服务器8。
  • 在服务器上配置了root密码。

安装和配置Nginx Web服务器

首先,您需要在系统上安装Nginx Web服务器。您可以使用以下命令进行安装。

dnf install nginx -y

安装完成后,启动Nginx服务,并使用以下命令在系统重启时启动它:

systemctl start nginxsystemctl enable nginx

默认情况下,Nginx正在侦听端口80。因此,您需要将Nginx配置为侦听端口80。可以通过编辑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软件包在CentOS 8默认存储库中可用。只需运行以下命令即可安装。

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配置清漆

接下来,您需要配置清漆以在端口80上运行以接收来自客户端的HTTP请求。可以通过编辑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 varnishsystemcl 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和防火墙

在CentOS 8中默认启用SELinux。因此,您需要为Varnish配置SELinux。您可以使用以下命令进行设置。

setsebool -P httpd_can_network_connect 1

接下来,您需要允许端口80通过Firewalld。您可以使用以下命令运行它:

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

完成后,您可以继续下一步。

Nis缓存测试

此时,已在Nginx Web服务器上安装并配置了Varnish缓存。现在让我们测试一下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

结论

恭喜!我已经使用Nginx在CentOS 8上成功安装了Varnish缓存。我希望您可以轻松地在Apache Web服务器上设置Varnish缓存。如有任何疑问,请随时与我们联系。

Sidebar