如何在Ubuntu 16.04 LTS上使用Nginx安装Varnish Reverse Proxy

如何在Ubuntu 16.04 LTS上使用Nginx安装Varnish Reverse Proxy

Varnish是一款专注于HTTP缓存的代理服务器。 它被设计为HTTP加速器,可以作为您的Web服务器Apache或Nginx的反向代理。 Varnish已被用于高知名度和高流量的网站,包括维基百科,卫报和纽约时报。

在本教程中,我将向您展示如何安装和配置varnish HTTP加速器作为Nginx Web服务器的反向代理。 真正的Web服务器Nginx将在非标准HTTP端口8080下运行。而Varnish将作为HTTP端口80上的反向代理运行。对于本指南,我们将使用Ubuntu 16.04服务器。

我们将要做什么

  1. 在Ubuntu 16.04上安装Nginx
  2. 在端口8080上配置Nginx
  3. 在Ubuntu 16.04上安装Varnish
  4. 配置Varnish作为Nginx的反向代理
  5. 配置UFW防火墙
  6. 测试

先决条件

  • Ubuntu 16.04
  • 根特权

第1步 - 在Ubuntu 16.04上安装Nginx

我们必须为本教程做的第一步是将Nginx安装到系统Ubuntu 16.04。 在这一步中,我们将安装Nginx(它可以在Ubuntu官方存储库中获得),然后启动服务,然后在系统启动时启用它。

使用apt命令从Ubuntu存储库安装Nginx。

sudo apt install nginx -y

安装完成后,启动Nginx并使用它在每次系统引导时使用下面的systemctl命令启动它。

systemctl start nginx
systemctl enable nginx

Nginx Web服务器运行在默认的HTTP端口上 - 使用netstat检查它并确保HTTP端口被Nginx使用。

netstat -plntu

第2步 - 在端口8080上配置Nginx

在这一步中,我们将配置nginx在非标准HTTP端口8080下运行。为此,我们需要在'sites-available'目录下编辑虚拟主机文件。

转到Nginx配置目录并使用vim编辑'默认'虚拟主机文件。

cd /etc/nginx/
vim sites-available/default

将'听'行值更改为8080。

        listen 8080 default_server;
        listen [::]:8080 default_server;

保存并退出。

现在测试Nginx配置并确保没有错误。 然后重新启动服务。

nginx -t
systemctl restart nginx

现在使用netstat再次测试nginx,并确保它运行在非标准的HTTP端口8080上。

netstat -plntu

Nginx Web服务器已安装,现在它正在端口8080上运行。

第3步 - 在Ubuntu 16.04上安装Varnish

现在我们需要在系统上安装Varnish。 我们可以从源代码安装该工具的最新版本。 对于本指南,我们将从Ubuntu储存库安装Varnish - Varnish v4。

使用下面的apt命令安装Varnish。

sudo apt install varnish -y

现在启动Varnish,并使其能够在系统启动时使用下面的systemctl命令启动。

systemctl start varnish
systemctl enable varnish

默认情况下,varnish将使用端口6081进行公共访问,端口6082用于varnish admin网页界面。 使用netstat命令检查它,并确保这些端口在列表中。

netstat -plntu

VarnishHTTP加速器已安装。

第4步 - 配置Varnish作为Nginx的反向代理

在本教程中,我们将使用Varnish作为Nginx Web服务器的反向代理。 Varnish将在HTTP端口80上运行,并在HTTP端口8080上运行Nginx Web服务器(完成)。

在这一步中,我们将为Nginx配置Varnish,定义后端服务器,然后将varnish更改为在HTTP端口80下运行。

现在进入Varnish配置目录并编辑'default.vcl'文件。

cd /etc/varnish
vim default.vcl

在后端行上,定义如下配置。

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

保存并退出。

注意:

  • .host =后端Web服务器地址。
  • .port =运行的支持的Web服务器。

后端配置已完成。

接下来,我们需要配置Varnish在HTTP端口80下运行。转至'/ etc / default'目录并编辑Varnish配置文件'varnish'。

cd /etc/default/
vim varnish

在'DAEMON_OPTS'行上,将默认端口6081更改为HTTP端口80。

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

保存并退出。

现在编辑'/ lib / systemd / system'目录中的Varnish服务文件。 转到systemd系统目录并编辑varnish.service文件。

cd /lib/systemd/system
vim varnish.service

在'ExecStart'行上,将Varnish端口6081更改为HTTP端口80。

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

保存并退出。

重新加载systemd配置并重新启动Varnish。

systemctl daemon-reload
systemctl restart varnish

配置完成后,使用下面的netstat命令检查Varnish。

netstat -plntu

确保Varnish在HTTP端口80上运行,如下所示。

作为Nginx反向代理的Varnish配置已经完成。

第5步 - 配置UFW防火墙

Ubuntu系统带有名为'UFW'的默认人类可读防火墙。 如果您没有该软件包,请使用下面的apt命令进行安装。

sudo apt install ufw

在这一步中,我们将激活防火墙并为SSH,HTTP和HTTPS打开新的端口。

运行下面的ufw命令。

ufw allow ssh
ufw allow http
ufw allow https

现在激活防火墙并使其在启动时每次启动。

ufw enable

输入'y',然后按Enter键确认。

UFW防火墙被激活,现在可以从外部网络访问HTTP以及HTTPS端口。

第6步 - 测试

- 使用cURL进行测试

使用curl命令测试Varnish,所以我们可以看到来自服务器的HTTP标头。

curl -I hakase-labs.co

你将得到HTTP Header结果'Via:1.1 varnish-v4',如下所示。

- 使用Web浏览器进行测试

打开您的网络浏览器并输入以下服务器URL或地址。 我的是: http : //hakase-labs.co

确保你获得了如下的Nginx默认页面。

- 测试Varnish日志

Varnish提供了一些用于管理和查看日志的命令。 我们将使用'varnishncsa'来获得Varnish访问日志。

varnishncsa

你会得到如下所示的结果。

Varnish安装和配置作为Nginx Web服务器的反向代理已经完成。

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏