ppt web 演示_如何通过糟糕的互联网现场演示Web应用

ppt web 演示

现场演示是世界各地专业演讲者的祸根。 出于无法预料的原因,即使是准备最充分的现场演示也会出错。 当您在300个人面前上台时,这是一件不好的事情。 远程Web应用程序的实时演示充满了危险,以至于大多数人发现了其他演示方法。 屏幕截图永远不会失败,并且本地沙箱不会在过载的会议Internet连接上失败。 但是,如果我们不能及时建立一个本地沙箱怎么办呢? 如果我们的数据库庞大又复杂怎么办? 如果我们的应用程序具有动画和无法通过屏幕截图显示的互动,该怎么办?

如果可以记录Web应用程序的使用情况,然后在适当的时间重放存储的响应,该怎么办? 幸运的是,代理HTTP很容易,HTTP是Web浏览器和Web服务器用来相互通信的协议。 这意味着您可以在浏览器和服务器之间放置中介,以执行所需的任何操作。 代理通常会进行内容过滤(例如,公司过滤器,父母过滤器)。 代理可以将数据缓存在离用户更近的服务器上,以加快网站访问速度。

在本教程中,我将以类似的方式使用Web代理:我将缓存我的内容,并将缓存的数据提供给我的Web浏览器。 但是,我将在与Web浏览器相同的机器上运行代理。 而且,我将其设置为仅缓存我想要的东西。 这样,我可以在不稳定的连接上运行实时演示。

安装和配置Squid HTTP代理

首先,我需要安装和配置代理。 我在Mac上,因此我通过Homebrew (适用于MacOS的免费软件包管理器)安装了Squid HTTP代理 。 安装代理后,我需要对其进行配置。

对于我的现场演示,我想缓存我要演示的应用程序以及该应用程序需要的任何其他内容。 缓存其他任何东西都是不必要的。 为此,Squid使用访问控制列表 (ACL)。 我将使用要缓存的域列表配置ACL,并拒绝其他所有内容。 为了获得最大的覆盖范围,我将主机名和IP地址都添加到ACL中。 由于HTTP代理也用于DNS,因此大多数情况下,代理都在查找DNS记录。 但是有时浏览器已经知道IP,并且只会告诉代理从IP中获取。

这是我的域和IP列表:



   
   
acl cacheDomain dstdomain beta.cpantesters.org
acl cacheDomain dstdomain api.cpantesters.org
acl cacheDomain dstdomain www.cpantesters.org
acl cacheDomain dstdomain 212.110.173.51
acl cacheDomain dstdomain cdnjs.cloudflare.com

前三个域是我正在运行的应用程序。 第四个是我的应用程序服务器的IP地址。 所有域都在同一台计算机上。 最后一个是CDNJS ,这是我获取JavaScriptJavaScript内容交付网络(CDN)。 为了使我的应用程序正常工作,我需要缓存CDNJS依赖的所有JavaScript和CSS。

列出要缓存的内容后,就可以禁止缓存其他任何域:



   
   
cache deny ! cacheDomain

接下来,我需要告诉Squid将缓存放在何处以及要使用多少磁盘空间。 Homebrew的Squid配置已注释掉cache_dir行。 我需要启用它并增加可用磁盘空间,以确保我的数据保持高速缓存。 磁盘空间用完后,Squid开始删除旧的缓存数据,这在我的演示过程中是无法实现的。



   
   
# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs / usr / local / var / cache / squid 1024 16 256

该行末尾的第一个数字是缓存大小(以MB为单位),我将其调整为1024(1GB)。

最后,我必须确保可以使用Squid的管理API,并且它仅对本地计算机开放。 这应该是默认设置,因此我会寻找这些http_access行,如果不存在,请添加它们。



   
   
# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

允许从本地主机访问缓存管理器后,我需要禁用缓存管理器密码:



   
   
cachemgr_passwd none all

我已经完成了配置文件 。 而且,既然我已经配置了代理,就可以启动它。 在Homebrew中,命令是brew services start squid ,但是您的平台可能有不同的要求。 此命令可启动代理并等待请求。 接下来,我需要配置浏览器以使用代理。

配置网络浏览器

为HTTP代理配置Web浏览器取决于您使用的浏览器和操作系统。 如果您在MacOS上使用Chrome或Safari,则可以转到系统偏好设置来配置代理。 但是,如果您使用的是Firefox,则可以将浏览器配置为使用代理,而将系统的其余部分保留下来。 其他操作系统还有其他配置代理的方法,因此您应该查看操作系统的文档。

有一些不错的浏览器插件可用于管理HTTP代理。 如果您使用的是Chrome,请尝试使用Proxy SwitchyOmega ,对于Firefox,请使用FoxyProxy Standard 。 不幸的是,对于Safari或Internet Explorer没有很好的代理插件选项。

运行演示以缓存内容

配置代理后,就可以通过演示进行测试。 我需要在良好的互联网连接上执行此操作。 在演示过程中,我的浏览器将要求代理获取所有演示数据。 代理执行此操作后,会将其缓存在磁盘上。 由于我的计算机在线,因此Squid将遵循Web服务器要求的缓存规则。 这意味着缓存特定的时间长度,并可能重新验证数据以查看其是否更改。

在演示过程中,应确保正在使用我的缓存。 最简单的方法是读取Squid的日志。 在我的配置中,它位于/usr/local/var/logs/access.log中 。 里面是几行,看起来像这样:



   
   
1498020228.970     203 :: 1 TCP_MISS / 200 3653 GET http: // beta.cpantesters.org / chart.html? - HIER_DIRECT / 212.110.173.51 text / html
1498020229.523     314 :: 1 TCP_REFRESH_MODIFIED / 200 8130 GET http: // api.cpantesters.org / v3 / release / dist / Statocles - HIER_DIRECT / 212.110.173.51 application / json

该行的重要部分是URL和状态。 TCP_MISS / 200表示“此请求不在我们的缓存中,并且远程服务器返回了200 OK HTTP响应。” TCP_REFRESH_MODIFIED / 200表示“此请求在我们的缓存中,但是我们从远程服务器刷新了该请求,该服务器返回了200 OK HTTP响应。” 这是我建立和刷新自身的缓存,因为我处于稳定的连接中。 一旦在缓存中保存了一些数据,我将开始看到以下内容:



   
   
1498063273.261       0 :: 1 TCP_INM_HIT / 304 299 GET http: // beta.cpantesters.org / chart.html - HIER_NONE / - text / html
1498063281.831       0 :: 1 TCP_MEM_HIT / 200 8187 GET http: // api.cpantesters.org / v3 / release / dist / Statocles - HIER_NONE / - application / json

TCP_INM_HIT / 304的意思是“缓存对此请求的响应为304 Not Modified响应。” TCP_MEM_HIT / 200的意思是“缓存以200 OK HTTP响应响应了此请求。” 这些是我想要的响应:缓存正在提供响应,而不是远程服务器。

运行演示

现在,我的缓存在稳定的连接上运行良好,现在可以在不稳定的连接上运行演示了。 首先,我要确保我的缓存不尝试访问远程服务器(即,它在Squid的“离线”模式下运行)。 为此,Squid有一个名为squidclient的管理客户端,我可以使用它来切换脱机模式。



   
   
$ squidclient mgr:offline_toggle
HTTP / 1.1 200 OK
Server: squid / 3.5.26
Mime-Version: 1.0
Date: Tue, 04 Jul 2017 21 : 16 : 36 GMT
Content-Type: text / plain; charset =utf- 8
Expires: Tue, 04 Jul 2017 21 : 16 : 36 GMT
Last-Modified: Tue, 04 Jul 2017 21 : 16 : 36 GMT
X-Cache: MISS from gwen.local
Via: 1.1 gwen.local ( squid / 3.5.26 )
Connection: close

offline_mode is now ON

Squid的离线模式最大程度地减少了获取远程内容的尝试。 因为我缓存了演示过程中运行的所有内容,所以这意味着Squid将提供演示。

所以现在我可以在任何地方运行演示了,不用担心! 所有远程内容均由本地计算机提供,因此会议WiFi的好坏无关紧要。 只要我坚持已经缓存的内容,我的Web应用程序就可以完美运行。

翻译自: https://opensource.com/article/17/7/squid-proxy

ppt web 演示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值