如何在CentOS/RHEL 8上安装Nginx的Varnish Cache 6

时间:2019-04-29 03:17:15  来源:igfitidea点击:

Varnish缓存是一个免费的开源、现代和高性能web应用程序加速器。它是一种快速反向HTTP代理,通过将web内容存储在服务器内存(在缓存中)来缓存内容,从而提高web服务器的性能。它被配置为在nginx (nginx) webserver等源服务器前运行。

在CentOS/RHEL 8上安装Nginx Web服务器

安装Nginx web服务器

# dnf update
# dnf install nginx

管理nginx服务

### 停止nginx web服务
# systemctl stop nginx

### 启动nginx web服务
# systemctl start nginx

### 设置nginx web服务开机自启动
# systemctl enable nginx

### 查看nginx web服务状态
# systemctl status nginx

为nginx 配置防火墙

开放80端口

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

如何在CentOS/RHEL 8上安装Varnish Cache 6

# dnf module install varnish

查看Varnish 的版本

# varnishd -V

Varnish 的配置文件

程序主目录: /usr/sbin/varnishd
配置文件目录: /etc/varnish
配置文件 /etc/varnish/default.vcl: 主varnish配置文件 , 使用VCL语言编写。
配置文件 /etc/varnish/secret:varnish 密钥文件

启动varnish服务,设置开机自启动

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish

配置nginx服务器,和Varnish 搭配使用

修改文件 /etc/nginx/nginx.conf

将nginx 的监听端口改为8080

server {
    listen 80 default_server;
    listen [::]:80 default_server;

每个需要使用Varnish提供缓存的虚拟主机, 都需要修改相应的监听端口。

例如:

/etc/nginx/conf.d/mytheitroad.tech.conf:

server {
        listen       8080;
        server_name  www.mytheitroad.tech;
        root         /var/www/html/mytheitroad.tech/;
        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

测试配置是否正确,并重启nginx服务,使配置生效

# nginx -t
# systemctl restart nginx

配置Varnish,将其作为nginx的前端

# systemctl edit --full  varnish

将端口6081改成80:

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

配置Varnish后端服务器

修改 /etc/varnish/default.vcl

可以将默认的 default改成 server1, 端口设置为 nginx服务器监听的端口。
如果nginx和Varnish在不同的机器上,需要将 .host设置为 nginx所在服务器的IP地址:

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

重启varnish,使配置生效

# systemctl daemon-reload
# systemctl restart varnish

测试

查看监听端口是否正确:

# ss -tpln

使用浏览器打开网址, http://服务器ip, 检查页面是否通过Varnish缓存.

也可以解析后通过域名访问 :http:/mytheitroad.tech