如何在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服务器。
我们将要做什么
- 在Ubuntu 16.04上安装Nginx
- 在端口8080上配置Nginx
- 在Ubuntu 16.04上安装Varnish
- 配置Varnish作为Nginx的反向代理
- 配置UFW防火墙
- 测试
先决条件
- 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服务器的反向代理已经完成。