前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上将Apache Traffic Server设置为反向代理

如何在Ubuntu 14.04上将Apache Traffic Server设置为反向代理

原创
作者头像
编程男孩
修改2018-10-25 11:12:54
1.8K0
修改2018-10-25 11:12:54
举报

介绍

Apache Traffic Server是一种高度可扩展的缓存代理服务器,能够处理大量并发请求,同时保持极低的延迟。与其他流行的代理服务器(如Varnish或Squid)相比,它通常消耗更少的内存并且响应速度更快。它还旨在充分利用现代多核处理器。根据您的要求,您可以将其用作反向代理或转发代理。

本教程将介绍如何在Ubuntu 14.04上安装Apache Traffic Server并将其配置为缓存反向代理。

先决条件

要学习本教程,您需要:

  • 一个Ubuntu 14.04 腾讯CVM,没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 具有sudo权限的non-root用户
  • 至少1 GB的交换空间

第1步 - 安装Traffic Server

由于Traffic Server在Ubuntu 14.04的默认存储库中可用,因此您可以使用apt-get来安装它。确保在执行此操作之前更新包索引文件。

代码语言:javascript
复制
sudo apt-get update && sudo apt-get install trafficserver

Traffic Server默认侦听端口8080。您现在可以使用浏览器访问http://your_server_ip:8080/。但是,您将看到错误,因为您尚未配置它。

第2步 - 安装Web服务器

根据定义,代理服务器充当外部用户和Web服务器之间的中介。因此,在开始配置Traffic Server之前,应在计算机上安装Apache HTTP Server等Web服务器。

使用apt-get来安装和启动Apache 。

代码语言:javascript
复制
sudo apt-get install apache2

您现在可以使用浏览器访问http://your_server_ip/来查看-+Apache的欢迎页面。

步骤3 - 禁用对Web服务器的远程访问

默认情况下,Apache接受所有网络接口上的连接。通过将其配置为仅接受环回接口上的连接,可以确保远程用户无法访问它。

使用nano或您喜欢的文本编辑器打开ports.conf

代码语言:javascript
复制
sudo nano /etc/apache2/ports.conf

搜索包含该Listen 80指令的行并将其更改为:

代码语言:javascript
复制
Listen  127.0.0.1:80

保存并退出该文件。

接下来,打开apache2.conf

代码语言:javascript
复制
sudo nano /etc/apache2/apache2.conf

在文件末尾添加以下行:

代码语言:javascript
复制
ServerName localhost

保存并关闭文件。

要应用配置更改,请使用以下命令重新启动Apache:

代码语言:javascript
复制
sudo service apache2 restart

尝试使用浏览器再次访问http://your_server_ip/。您的浏览器现在应该显示错误,因为您阻止了对服务器的远程访问。

步骤4 - 将Traffic Server配置为反向代理

在此步骤中,我们将Traffic Server配置为反向代理。为此,请打开remap.config,您应该编辑该文件来定义Traffic Server的映射规则。

代码语言:javascript
复制
sudo nano /etc/trafficserver/remap.config

让我们创建一个简单的规则,说明对端口8080上服务器IP地址的所有请求都映射到Web服务器的本地地址和端口。您可以通过将以下行添加到文件末尾来执行此操作:

代码语言:javascript
复制
map http://your_server_ip:8080/ http://127.0.0.1:80/

保存文件并退出。

要激活新的映射规则,请使用以下traffic_linereread_config命令:

代码语言:javascript
复制
sudo traffic_line --reread_config

打开浏览器并访问http://your_server_ip:8080/。如果您现在可以看到Apache的欢迎页面,则表示您已成功将Traffic Server配置为反向代理。

步骤5 - 配置流量服务器以缓存所有内容

默认情况下,仅当流量服务器包含明确指定项目应存储在缓存中的时间的Cache-ControlExpires标头时,它才会缓存HTTP响应。但是,由于我们的Web服务器仅提供静态文件,因此可以安全地缓存其所有响应。

要配置Traffic Server以使其缓存所有HTTP响应,您应该将名为proxy.config.http.cache.required_headers的配置变量的值更改为0。这可以使用traffic_lineset_var命令来完成。

代码语言:javascript
复制
sudo traffic_line --set_var proxy.config.http.cache.required_headers --value 0

使用reread_config标志应用更改。

代码语言:javascript
复制
sudo traffic_line --reread_config

打开浏览器并再次访问http://your_server_ip:8080/。这将把Apache欢迎页面存储在Traffic Server的缓存中。

第6步 - 检查缓存

要查看Traffic Server缓存的内容,可以使用名为Cache Inspector的工具,该工具具有基于Web的界面。

要激活该工具,请将配置变量proxy.config.http_ui_enabled的值设置为1

代码语言:javascript
复制
sudo traffic_line --set_var proxy.config.http_ui_enabled --value 1

接下来,创建一个映射规则,指定要用于访问它的路径。再次使用nano打开remap.config

代码语言:javascript
复制
sudo nano /etc/trafficserver/remap.config

为了可以在/inspect上使用Cache Inspector 。请在文件顶部添加以下行:

代码语言:javascript
复制
map http://your_server_ip:8080/inspect http://{cache}

保存文件并退出。

要应用更改,请重新启动Traffic Server。

代码语言:javascript
复制
sudo service trafficserver restart

现在可以使用Cache Inspector。打开浏览器,然后访问http://your_server_ip:8080/inspect/

。你会看到一个如下所示的页面:

接下来,单击Lookup url链接。

您现在可以在文本字段中键入URL,然后单击“ 查找”按钮以检查它是否存储在缓存中。

例如,您可以输入http://your_server_ip:8080/以检查是否从缓存中提供了Web服务器的主页。如果是,您将看到如下所示的页面:

结论

您现在知道如何在Ubuntu 14.04上安装Apache Traffic Server并将其配置为缓存反向代理。虽然我们在本教程中使用Apache作为Web服务器,但您可以轻松使用任何其他Web服务器。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《 How to Set Up Apache Traffic Server as a Reverse-Proxy on Ubuntu 14.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 先决条件
  • 第1步 - 安装Traffic Server
  • 第2步 - 安装Web服务器
  • 步骤3 - 禁用对Web服务器的远程访问
  • 步骤4 - 将Traffic Server配置为反向代理
  • 步骤5 - 配置流量服务器以缓存所有内容
  • 第6步 - 检查缓存
  • 结论
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档