如何在 CentOS 8 上使用 Nginx 安装和设置 Varnish Cache 6如何在 CentOS 8 上使用 Nginx 安装和设置 Varnish Cache 6如何在 CentOS 8 上使用 Nginx 安装和设置 Varnish Cache 6如何在 CentOS 8 上使用 Nginx 安装和设置 Varnish Cache 6
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

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

发表 admin at 2025年2月28日
类别
  • 未分类
标签

在此页

  1. 先决条件
  2. 安装和配置 Nginx Web 服务器
  3. 安装清漆缓存
  4. 为 Nginx 配置 Varnish
  5. 配置 SELinux 和防火墙
  6. 测试清漆缓存
  7. 结论

Varnish Cache 是用于网站和 API 的免费开源反向代理 HTTP 加速器。它可以作为反向代理安装在任何运行在 HTTP 上的 Web 服务器前面。它位于网络服务器和浏览器之间,将网页、cookie 和其他数据保存到内存中。此缓存将用于服务所有未来对完全相似内容的请求。这将增加 web 应用程序负载,并将 web 服务器性能提高 300+ 倍。

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

先决条件

  • 一台运行 CentOS 8 的服务器。
  • 为服务器配置了根密码。

安装和配置 Nginx Web 服务器

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

dnf install nginx -y

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

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

接下来,您需要将 Varnish 配置为在端口 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 varnish
systemcl enable varnish

您还可以使用以下命令验证 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 缓存已安装并配置了 Nginx Web 服务器。现在,是时候测试 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

结论

恭喜!您已经在 CentOS 8 上成功安装了带有 Nginx 的 Varnish Cache。我希望您也可以轻松地使用 Apache Web 服务器配置 Varnish 缓存。如果您有任何问题,请随时问我。

©2015-2025 Norria support@norria.com