当前位置: 首页>>技术教程>>正文


如何在Ubuntu 18.04 Bionic Beaver Linux上使用Nginx安装Varnish缓存服务器

, ,

目的

目的是在Ubuntu 18.04 Bionic Beaver Linux上使用Nginx安装和配置Varnish Cache服务器。 Varnish是一种快速缓存服务器,它位于任何Web服务器之前,并提供以前缓存的页面,因此可以缩短网站的响应时间。

操作系统和软件版本

  • 操作系统:-Ubuntu 18.04 Bionic Beaver Linux
  • 软件:-清漆5.2或更高

要求

以root或通过特权访问Ubuntu系统sudo命令是必需的。

困难

介质

约定

  • -要求linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo命令
  • $-要求linux命令以普通非特权用户身份执行

使用说明

安装Varnish和Nginx

让我们从安装Varnish和Nginx服务开始。如果您已经在该系统或其他系统上运行了Nginx Web服务器,则只需从bellow命令中删除Nginx关键字即可安装清漆:


$ sudo apt -y install varnish nginx

使用ss确认安装状态的命令:

$ ss -tlnf inet
State       Recv-Q Send-Q Local Address:Port    Peer Address:Port         
LISTEN      0      128      0.0.0.0:5355                 0.0.0.0:*        
LISTEN      0      128      0.0.0.0:80                   0.0.0.0:*        
LISTEN      0      128      0.0.0.0:22                   0.0.0.0:*        
LISTEN      0      128      0.0.0.0:6081                 0.0.0.0:*        
LISTEN      0      10     127.0.0.1:6082                 0.0.0.0:* 

成功安装您的Nginx服务器之后4号线应该在端口上监听80。清漆6,7行正在同时使用60816082端口。




配置Nginx服务器

Nginx服务器的作用是位于Varnish缓存服务器之后,因此我们需要将其默认端口80重新配置为其他监听端口。8080。为此,请打开您喜欢的文本编辑器,例如。nano并编辑默认站点:


$ sudo nano /etc/nginx/sites-available/default

进入编辑模式更改第2行和第3从默认端口80到替代端口8080如下所示:

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

准备就绪后,保存您的新设置并重新加载Nginx服务器:


$ sudo service nginx reload

Nginx现在应该在新的默认端口上侦听8080如图所示4号线来自ss命令输出:

$ ss -tlnf inet
State       Recv-Q Send-Q Local Address:Port          Peer Address:Port              
LISTEN      0      128      0.0.0.0:5355                 0.0.0.0:*             
LISTEN      0      128      0.0.0.0:8080                 0.0.0.0:*             
LISTEN      0      128      0.0.0.0:22                   0.0.0.0:*             
LISTEN      0      128      0.0.0.0:6081                 0.0.0.0:*             
LISTEN      0      10     127.0.0.1:6082                 0.0.0.0:*

(可选)您可以更改默认索引页:


 $ sudo sed -i 's/nginx/Varnish cache server on Nginx/g' /var/www/html/index.nginx-debian.html


设置Varnish缓存服务器

由于我们要通过Varnish缓存服务器从Nginx路由流量,因此现在的目的是重新配置Varnish缓存服务器以侦听端口80因此充当所有公共HTTP请求的前台。为此,请编辑其systemd配置文件/lib/systemd/system/varnish.service


$ sudo nano /lib/systemd/system/varnish.service

编辑9号线并更改默认端口6081移植80如下所示:

[Unit]
Description=Varnish HTTP accelerator
Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd

[Service]
Type=simple
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
ExecReload=/usr/share/varnish/varnishreload
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
PrivateDevices=true

[Install]
WantedBy=multi-user.target

接下来,我们需要指示Varnish依赖Nginx端口8080。编辑/etc/varnish/default.vcl


$ sudo nano /etc/varnish/default.vcl

打开文件后,向Varnish服务器提供Nginx套接字信息。

如果您的Nginx服务器与Varnish服务器位于同一主机上,请离开3号线无需任何更改,否则输入您的Nginx IP地址。我们的Nginx服务器的端口号是8080,如果您有其他配置,请编辑4号线适当地:

# Default backend definition. Set this to point to your content server.
backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

快好了!剩下的就是重新加载systemd守护程序并重新启动Varnish缓存服务器:


$ sudo systemctl daemon-reload
$ sudo service varnish restart

全部完成,再次使用ss确认清漆的命令4号线和Nginx5号线端口:

$ ss -tlnf inet
State      Recv-Q Send-Q Local Address:Port     Peer Address:Port              
LISTEN     0      128       0.0.0.0:5355                  0.0.0.0:*        
LISTEN     0      128       0.0.0.0:80                    0.0.0.0:*        
LISTEN     0      128       0.0.0.0:8080                  0.0.0.0:*        
LISTEN     0      128       0.0.0.0:22                    0.0.0.0:*        
LISTEN     0      10      127.0.0.1:6082                  0.0.0.0:*   


如果您使用的是UFW防火墙,请按照我们的指南进行操作在Ubuntu服务器上的HTTP和HTTPS端口上启用传入流量。

测试Varnish缓存服务器

测试您的Varnish Cache服务器配置的最简单方法是curl命令。鉴于您的Varnish Cache服务器IP地址可以通过以下方式解析varnish-server-ubuntu主机名输入:


$ curl -I varnish-server-ubuntu

下面的输出2号线表明我们正在通过Varnish Cache使用Nginx服务器10号线

HTTP/1.1 200 OK
Server: nginx/1.13.6 (Ubuntu)
Date: Thu, 22 Feb 2018 03:50:52 GMT
Content-Type: text/html
Last-Modified: Thu, 22 Feb 2018 03:08:27 GMT
ETag: W/"5a8e342b-324"
Vary: Accept-Encoding
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/5.2)
Accept-Ranges: bytes
Connection: keep-alive

接下来,最重要的是,使用以下URL通过网络浏览器检查您的配置http://varnish-server-ubuntu/

How to install Varnish cache server with Nginx on Ubuntu 18.04 Bionic Beaver Linux

另外,您可以使用来检查一些Varnish Caching统计信息varnishstat命令:


$ sudo varnishstat

How to install Varnish cache server with Nginx on Ubuntu 18.04 Bionic Beaver Linux statistics

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8957.html,未经允许,请勿转载。