Drupal8 实现动静分离
作者:亚艾元技术部
我们有一个客户,想在国庆期间关闭网站的数据库,还想让网站能够访问。这个需求在国内很常见。我们初步选定了boost模块基于Tome模块。首先尝试了Tome模块,总是报错,我检查了一下,网站升级不彻底,重新帮助客户升级到8.7.7,再安装Tome模块。在后台生成静态页面的时候,总是报错。我们研究一下,增加了日志输出。检查到了几个出错的页面:
作者:亚艾元技术部
我们有一个客户,想在国庆期间关闭网站的数据库,还想让网站能够访问。这个需求在国内很常见。我们初步选定了boost模块基于Tome模块。首先尝试了Tome模块,总是报错,我检查了一下,网站升级不彻底,重新帮助客户升级到8.7.7,再安装Tome模块。在后台生成静态页面的时候,总是报错。我们研究一下,增加了日志输出。检查到了几个出错的页面:
作者:亚艾元技术部
Drupal 8下面的boost模块,并不完善,我们改造了一下,刚好能够满足我们的需要。
不过在配置nginx的重写规则的时候,Drupal8网站需要单独的写一个规则,我开始的时候这样写nginx下面的规则:
作者:亚艾元技术部
安全检查公司检查做了的网站,0个高危漏洞,1个中危漏洞,当然还有很多轻微的问题。
这里的这个中危漏洞,就是:
任何以明文形式发送到服务器的 cookie、会话令牌或用户凭证之类的信息都可能被窃取,并用于身份盗窃或用户伪装。
HTTPS Session Cookie 'secure' Attribute Not Set
给出的解决建议是:
作者:亚艾元技术部
禁用不需要的http方法:
HTTP支持的方法要多一些,实际我们平时用的就是GET|HEAD|POST, 对于TRACE和DELETE,就不常用,而且后面两种方法经常带来潜在的危险,比如跨站追踪攻击和窃取cookie信息等等。
通过下面的代码,即可禁用:
if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 405; }
作者:亚艾元技术部
Drupal 8 网站部署的nginx有时候反应有点慢,经过查看日志,特别是错误日志,存在大量这种信息:
an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/7/74/0000035747 while reading upstream
作者:亚艾元技术部
我们在Drupal8项目中,遇到一个段落P标签对齐的问题。最新的浏览器下面,都没有问题,但是360浏览器,选择了兼容模式,问题就出来了,客户使用360浏览器的还是比较多,让我们一定解决这个问题。总是对不齐。尝试了很久,我们的工程师都没有解决,后来我们向CSS专家shixinwzw求助,给出了一个兼容性较强的CSS实现。
作者:亚艾元技术部
在Drupal7下面,开启了页面缓存以后,当你编辑了节点以后,匿名用户看到的内容需要等一个多小时,才会看到最新的修改。除非你安装expire模块,可以帮你实现这个功能。
到了Drupal8,expire模块的继任者purge模块,我自己看了源代码,发现他没有提供对核心自带的页面缓存的支持。我打算自己写一个模块,实现对页面缓存的支持。不过从purge模块的文档里面,我看到了Drupal8核心自己支持当编辑一个节点时,更新对应页面的缓存。
作者:亚艾元技术部
导航到管理界面,配置》开发》性能,点击清空所有缓存按钮。即可清空所有缓存。
如果这个时候,你的页面已经白屏,进不去。怎么办,如果是本地,可以打开phpmyadmin,找到以cache开头的数据库表,一个一个的清空缓存。
还有一个办法: