云网牛站
所在位置:首页 > Linux云服务器 > CentOS 8/RHEL 8系统Apache/Nginx服务器中安装配置Varnish Cache 6

CentOS 8/RHEL 8系统Apache/Nginx服务器中安装配置Varnish Cache 6

2019-11-22 15:22:41作者:庄立稿源:云网牛站

在本文中,我们将介绍如何使用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键:

CentOS 8/RHEL 8系统Apache/Nginx服务器中安装配置Varnish Cache 6

可使用以下方法检查有关已安装软件包的更多信息:

$ rpm -qi varnish

返回如下信息:

CentOS 8/RHEL 8系统Apache/Nginx服务器中安装配置Varnish Cache 6

有关在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

CentOS 8/RHEL 8系统Apache/Nginx服务器中安装配置Varnish Cache 6

 

为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

CentOS 8/RHEL 8系统Apache/Nginx服务器中安装配置Varnish Cache 6

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

CentOS 8/RHEL 8系统Apache/Nginx服务器中安装配置Varnish Cache 6

确保将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系统Apache/Nginx服务器中安装配置Varnish Cache 6

至此,我们已在CentOS 8/RHEL 8上为Nginx和Apache Web服务器安装并配置了Varnish Cache,并且通过了测试。

 

相关主题

在RHEL/CentOS 8上安装Apache Tomcat 9的方法

精选文章
热门文章