在本文中,我们将介绍如何使用Apache httpd/Nginx Web服务器在CentOS 8/RHEL 8系统操作中安装和配置Varnish Cache 6 LTS,Varnish缓存可以安装在云或数据中心中运行的虚拟机上,由你自己选择,取决于使用它的应用程序在哪里运行。在开始安装之前请运行sudo dnf -y update命令更新系统。
在CentOS 8/RHEL 8操作系统中安装Varnish Cache 6 通过运行以下命令在CentOS 8/RHEL 8 Linux计算机上安装Varnish Cache 6: sudo dnf install @varnish 其他Linux版本请参考:在CentOS 7上为Apache/Nginx安装和配置Varnish Cache 6的方法。 当提示你继续安装时,请按y键:
可使用以下方法检查有关已安装软件包的更多信息: $ rpm -qi varnish 返回如下信息:
有关在CentOS 8/RHEL 8中安装Varnish的主要说明: Varnish的主要配置文件是:/etc/varnish/default.vcl Varnish secret文件:/etc/varnish/secret Varnish Cache可执行二进制文件:/usr/sbin/varnishd Varnish Systemd单位文件:/lib/systemd/system/varnish.service
在CentOS 8/RHEL 8中启动并启用Varnish Cache 现在,我们已经在CentOS 8/RHEL 8上安装了Varnish Cache,让我们启动该服务并将其设置为在启动时启动: sudo systemctl enable --now varnish 确认服务状态: $ systemctl status varnish
为Nginx/Apache Web服务器配置Varnish缓存 Varnish Cache是一个缓存HTTP反向代理,位于Web服务器的前面,目标是加快Web服务器的速度。 安装你喜欢的Web服务器,此演示演示了Nginx/Apache HTTPD服务器的安装: # Apache $ sudo dnf -y install @httpd # Nginx $ sudo dnf -y install @nginx 1.配置Nginx以使用Varnish缓存 默认情况下,Nginx侦听TCP端口80,你需要将侦听端口更改为8080,Varnish Cache将使用端口80: $ sudo vi /etc/nginx/nginx.conf ..... server { listen 8080 default_server; listen [::]:8080 default_server; .... } 如果使用虚拟主机功能,请编辑相关的配置文件,例如: $ sudo vi /etc/nginx/conf.d/mysite.conf 然后重新启动Nginx: $ sudo systemctl restart nginx 确认你的设置: $ ss -tunelp | grep 8080
2.配置Apache以使用Varnish缓存 如果你使用的是Apache Web服务器,请将侦听端口设置为8080: $ sudo vi /etc/httpd/conf/httpd.conf ... Listen 8080 也可以使用单个sed命令: sudo sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf 更改后重新启动httpd服务: sudo systemctl restart httpd 3.配置Varnish缓存服务器 现在编辑Varnish Cache配置文件,并将侦听端口设置为80: sudo vi /etc/systemd/system/multi-user.target.wants/varnish.service 编辑从ExecStart开始的行,并更改为: ExecStart=/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m To: ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m 然后重新启动varnish systemd服务: sudo systemctl daemon-reload sudo systemctl restart varnish 确认使用的端口: $ sudo systemctl status varnish
确保将Nginx/Apache配置为Varnish代理的后端服务器: $ sudo vi /etc/varnish/default.vcl ..... # Default backend definition. Set this to point to your content server. backend default { .host = "127.0.0.1"; .port = "8080"; } ....... 注意端口8080在Apache/Nginx Web服务器上配置。 对于多个后端,你的配置将如下所示: backend default { .host = "127.0.0.1"; .port = "8080"; } backend java { .host = "127.0.0.1"; .port = "8000"; } 但是你需要告诉Varnish使用vcl_recv将差异网址发送到哪里,可以说我们的Java应用程序应处理以/java/开头的URL: sub vcl_recv { if (req.url ~ "^/java/") { set req.backend_hint = java; } else { set req.backend_hint = default; } }
在Nginx/Apache上测试Varnish缓存 最后,我们使用以下curl命令测试是否启用了Varnish缓存并使用Apache/Nginx服务: $ curl -I http://localhost HTTP/1.1 200 OK Server: nginx/1.14.1 Date: Mon, 04 Nov 2019 19:22:31 GMT Content-Type: text/html Content-Length: 4057 Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT ETag: "5d9bab28-fd9" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/6.0) Accept-Ranges: bytes Connection: keep-alive 这为你提供了HTTP标头信息。 如果重新运行该命令,它将显示Varnish缓存的响应(注意Age标头): $ curl -I http://localhost HTTP/1.1 200 OK Server: nginx/1.14.1 Date: Mon, 04 Nov 2019 19:22:31 GMT Content-Type: text/html Content-Length: 4057 Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT ETag: "5d9bab28-fd9" X-Varnish: 5 3 Age: 66 Via: 1.1 varnish (Varnish/6.0) Accept-Ranges: bytes Connection: keep-alive 对于具有DNS A记录集的有效域名,它应该具有相同的作用:
至此,我们已在CentOS 8/RHEL 8上为Nginx和Apache Web服务器安装并配置了Varnish Cache,并且通过了测试。
相关主题 |