云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云解析_网站建设优化公司排名_新注册优惠

小七 141 0

使用CloudFlare安全快速的GitHub页面

GitHub提供了一个web托管服务,您可以从GitHub存储库为静态网站提供服务。这个平台GitHub Pages可以在使用自定义域名的同时与CloudFlare一起使用。在本教程中,我将向您展示如何一起使用CloudFlare和GitHub。通过利用CloudFlare的全球网络,您可以利用我们的CDN服务来提高站点的性能和安全性。虽然GitHub页面通常不支持自定义域上的SSL,但CloudFlare的通用SSL允许用户通过SSL访问您的站点,从而打开了HTTP/2的性能优势。GitHub页面被设计成只提供静态HTML服务的站点。仅承载静态内容的能力并不像您想象的那么大。静态站点生成器避免了更新"最新帖子"提要、分页或站点地图的重复更新任务;同时生成可以上载到任何web宿主服务而无需脚本引擎的静态HTML。与像FrontPage和Dreamweaver这样缺乏内容模型的古代桌面工具不同,现代静态站点生成器的设计与内容完全分离。通常,基于CMS的站点必须查询数据库中的内容,然后将HTML呈现给最终用户;所有这些都是为了在请求之后提供相同的内容。即使使用缓存,对于只有管理员更改内容的站点来说,这种组合也不太优雅。对于静态站点,web服务器只需要向最终用户提供静态HTML。这有着深远的性能优势:静态站点行走而动态站点爬行。除此之外,在Git存储库中跟踪所有站点更改的功能在协作编辑方面增加了更好的控制能力。只是没有静态的网站,没有。不用担心用不安全的数据库查询修补PHP或插件。显然,静态网站不能做所有事情,也就是说,任何动态的东西都不能做;尽管如果你想做的话,你可以使用JavaScript api来添加一些动态功能。第0步:准备站点芝加哥:国家公园。&工程师。有限公司。在本教程中,我将使用Jekyll作为静态站点生成器。Jekyll的工作原理是获取一堆降价文件并输出静态博客所需的HTML。在一个名为StaticGen的站点上有一个很好的生成器列表,包括一个用Go编写的名为Hugo的静态站点生成器。由于与GitHub页面的集成,我在这里使用Jekyll。如果您想托管一个JavaScript应用程序或一个简单的静态站点,只需跳过这一步。假设您的Ruby版本大于2.0.0,那么您可以通过运行以下命令来安装Jekyll:gem安装jekyll在这个例子中,我将创建一个关于使用Jekyll的植物的博客。要创建博客,只需运行:杰基尔新植物它将输出如下内容:安装在/Users/junade/plants中的新jekyll站点。从这里,我可以将cd放入plants目录,并在本地计算机上提供博客服务,如下所示:cd植物杰基尔发球web服务器将启动,您将在终端提示中找到一些有用的信息。您应该能够在浏览器的端口4000从本地主机访问站点::4000个当这个服务器正在运行时,你可以更新你的站点;你会发现一些有用的变量来编辑_配置yml. 要添加新帖子或编辑现有演示,只需在_posts目录中添加一个新的降价文件。通常,您需要使用jekyll build生成站点的HTML,然后将其上载到您选择的web服务器,GitHub允许将原始jekyll项目上载到其服务;它将从jekyll项目处理HTML本身的构建和服务。有一个针对Jekyll站点的Ruby Gem,可以确保它们在本地呈现的方式与在GitHub页面上托管时相同(如果您感兴趣)。步骤1:设置存储库创建一个GitHub存储库,其中包含我们要服务的站点的文件(例如我们的Jekyll源代码或HTML)。由于我的GitHub用户名是IcyApril,所以我可以创建一个名为icyapril.github.io. 请确保存储库名称全部为小写。在这个存储库中,主分支中的任何内容都将在icyapril.github.io.如果您还没有,让我们启动一个存储库,其中包含我们的站点文件:初始化git添加-Agit commit-m"初始提交"现在,我们可以通过将源文件添加为GitHub,将文件推送到主机;请确保源文件的URL已自定义为您自己的存储库:git远程添加源git@github.com:IcyApril公司/icyapril.github.io.git文件git push-u源主机现在,当您访问[用户名]时,您应该可以看到您的站点。github.io.第2步:设置DNS我假设您已经注册了一个域并将其添加到您的CloudFlare帐户中。为了让GitHub接受来自这个域的流量,我们需要在存储库中创建一个CNAME文件,其中包含接受流量的主机名。以下规则适用:如果CNAME文件包含示例.com,那么网站将重定向到示例.com.如果CNAME文件包含网站,那么example.com网站将重定向到。在上一节创建的Git存储库中,让我们向该存储库添加一个CNAME文件并提交更改:回音"www.ju.je">CNAME公司git添加-Agit commit-m"添加了CNAME文件。"git推送原点主机我们可以添加记录,将DNS记录指向我们的GitHub Pages帐户(由于CNAME扁平化,我们可以在根目录使用CNAME:您可以从GitHub页面文档中找到最新的IP地址。第3步:SSL的时间到了不幸的是,GitHub页面还不支持自定义域的GitHub页面上的SSL,这通常会排除使用HTTP/2的可能。虽然HTTP/2规范(rfc7540)允许在纯文本HTTP/2上运行HTTP/2,但所有流行的浏览器都要求HTTP/2运行在传输层安全之上;这意味着HTTP/2只能在HTTPS上运行是事实上的标准。幸运的是,CloudFlare的通用SSL选项允许我们向站点访问者提供签名的SSL证书。这使我们能够获得HTTP/2的性能优势,并有可能提高搜索引擎的排名。在CloudFlare站点的Crypto选项卡中,应确保将SSL模式设置为完全但不完全(严格):我们现在可以添加一个页面规则来强制HTTPS,因为您添加了其他页面规则,请确保这是主页面规则:我们还可以创建一个页面规则,以确保在使用HTTPS时非www安全地重定向到www:启用HTTP严格传输安全(HSTS)将有助于确保您的访问者必须通过HTTPS与您的站点通信,方法是告诉浏览器他们应该始终通过加密的HTTPS进行通信。但是,如果你选择设置这个,如果你想关闭HTTPS,它可能会使你的站点无法访问。第四步:缓存所有的东西CloudFlare在页面规则中有一个"缓存所有内容"选项。对于静态站点,它允许直接从CloudFlare的CDN缓存和服务HTML。部署站点时,可以使用CloudFlare上"缓存"选项卡中的"清除缓存"选项来删除静态页面的缓存版本。如果您使用持续集成系统来部署站点,您可以使用我们的API以编程方式清除缓存。缺点WikiMedia上的WillMcC首先是安全问题。如果要部署与远程api通信的JavaScript应用程序,请确保不要将其用于敏感数据提交。正如GitHub自己所说:"GitHub页面站点不应该用于发送密码或信用卡号码之类的敏感事务。"还要记住,你的网站源文件在Git存储库中是可以公开访问的,所以你放在那里的东西要格外小心。有些事情我们做不到;GitHub页面不允许我们设置自定义头,不幸的是,我们现在不能进行HTTP/2服务器推送。结论GitHub页面、CloudFlare和静态站点生成器结合起来,为静态站点创建快速、安全、免费的托管。