Apache2/Httpd的目录浏览功能 列出的文件名不完整

Apache2 的目录浏览功能 列出的文件名不完整,修改设置参考如下:

参考链接


ubuntu 18.04 Apache2启用HTTP/2

HTTP/2 可以让我们的应用更快、更简单、更稳定 – 这几词凑到一块是很罕见的!HTTP/2 将很多以前我们在应用中针对 HTTP/1.1 想出来的“歪招儿”一笔勾销,把解决那些问题的方案内置在了传输层中。不仅如此,它还为我们进一步优化应用和提升性能提供了全新的机会!

——《Web 性能权威指南》

Ubuntu18.04 官方源已经包含带有HTTP2模块的 Apache/2.4.29 ,所以我们可以很简单的启用 HTTP2。

首先启用 http2 模块,然后在虚拟主机的配置文件中或者在Apache2的全局配置文件中加入:

当客户端支持时优先使用 HTTP2 ,其次是 http/1.1,表明了一种优先顺序。目前为止就已经启用完成了,但如果你是使用的 Apache2+PHP 架构的应用程序,由于 mpm_prefork 模块不支持 mod_http2,所以我们需要切换 mpm_prefork、mod_php 到 mpm_event 和 php-fpm 来解决这个问题。

继续阅读ubuntu 18.04 Apache2启用HTTP/2

Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute

最近在浏览器(Chrome 85.0.4183.121)调试网页的时候,出现如下警告信息:

继续阅读Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute

apache日志中的中文如何显示?

 apache日志记录的中文,是内码如下:

编码后中文是:

完全看不懂是什么意思,如何解析出里面的中文出来呢?

php参考如下代码:

golang参考如下代码:

java参考如下代码:

参考链接


Apache2.4中通过.htaccess配置解决Chrome 68之后的浏览器报告网站不安全的问题

2018724日发布的Chrome 68中,Google有一项重大举措就是宣布所有HTTP网站都会被标识为not secure,也就是不安全,并计划在Google搜索结果里降低HTTP网站的权重和排名。

实际的效果如下图:

继续阅读Apache2.4中通过.htaccess配置解决Chrome 68之后的浏览器报告网站不安全的问题

Apache中设置来自移动端的请求强制重定向到HTTPS规避运营商的页面劫持

最近中国移动的流量劫持到了令人发指的地步,凡是没有使用HTTPS的网址都会被劫持,非常影响用户体验。如下图所示(右下角):

继续阅读Apache中设置来自移动端的请求强制重定向到HTTPS规避运营商的页面劫持

ubuntu 16.04.3上apache 2.4.18通过HTTP_REFERER阻止图片盗链

最近偶尔碰到网站的流量被消耗尽的情况,已经影响到自己的使用了。怀疑网站图片,数据等被盗链,导致流量被消耗。

ubuntu 16.04.3apache 2.4.18防止网站图片被盗链的方法如下:

首先是在根目录下创建一个.htaccess,如果已经有了,直接把下面的代码添加到.htaccess尾部即可。

简单的解释下每条语句:

允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。

设置允许访问的HTTP来源,包括我们的站点自身、GoogleBaidu等。这个可以添加多条,目前我们配置只有自身还有谷歌百度等常用的搜索引擎的访问权限。

定义被盗链时替代的链接,可以是图片,也可以是404错误页,目前我们定义的是首页,所以就是mobibrw.com,如果是要定义在404页面,可以把404页面的路径加上。当然替换的页面文件体积越小越好。你也可以不设置替换图片,而是使用下面的语句即可(服务器返回403禁止访问):

参考链接


网站如何防止图片被盗链!怎么样让网站的图片不被其他网站调用

ubuntu 16.04.3上apache2服务器报告错误“script not found or unable to stat: /usr/lib/cgi-bin/php*”

最近在查看服务器上的apache2的错误日志的时候,发现如下错误信息:

刚刚开始感觉莫名其妙,因为PHP的解析已经通过PHP-FPM模式进行处理,服务器上的配置已经不需要cgi进行处理了。

网上搜索了一下,发现这个是由于ubuntuapache2的默认配置模版导致的,尤其是从ubuntu 12.04一路升级上来的系统,在配置模版中有指出/usr/lib/cgi-bin/这个路径,可是这个路径已经不再使用了。

修改方式如下:

向下查找,会发现如下内容:

如果确实网站已经不再使用任何cgi相关的东西了,可以直接注释掉这段代码。
另外如果开启了HTTPS,同理需要修改HTTPS对应的配置文件。

修改完成后,重启服务器:

参考链接


script not found or unable to stat: /usr/lib/cgi-bin/php-cgi

ubuntu 16.04执行letsencrypt的时候报告错误“ImportError: No module named datetime”

网站一直使用letsencrypt提供的HTTPS证书,这个证书的问题在于每隔三个月就必须更新一次,本次更新证书的时候,提示如下错误:

错误发生的原因在于letsencrypt自己构建了一个Python的虚拟环境来隔离,但是早期建立的虚拟环境中是缺少部分软件包的,而自身的BUG导致也没有重新更新虚拟环境,导致出现异常。

解决方法就是删除letsencrypt自己构建的Python的虚拟环境,然后继续执行脚本让他重建即可。

参考链接


Ubuntu 14.04.5版本上安装并启用Apache 2.4.10版本的Event MPM模块

Apache 2.4版本开始已经尝试借鉴Nginx的实现方式来处理网络连接。但是到目前(2017.2.22)为止,实现的并不彻底,只是在处理HTTP协议的时候使用异步模式,而处理HTTPS协议的时候,依旧使用每个连接一个线程的模式。据说完整的支持HTTPS异步,要到Apache 3.x版本了。

目前的Apache MPM event本质上还是Apache MPM worker的优化版本,并不是一个完整的独立模式。

尽管支持的不是太完善,但是这部分的实现,已经能比较好的改善Apache 2.4的网络处理性能了,尤其是对于我这种访问压力不是太大的网站来说,目前应该是够用了的。暂时可以缓解一下迁移到Nginx的急迫性,并且比较好的减少访问网站时候的延迟比较高的问题。

到目前(2017.2.22)为止在Ubuntu 14.04.5版本上Apache Event MPM还不属于正式版本,而是被部署到了backports(待发布)分支上,处于候选发布状态,因此我们安装的时候,需要执行指定backports,具体执行命令如下:

模块的配置文件在/etc/apache2/mods-available/mpm_event.conf,目前我这边用默认配置已经足够了(足见访问量是多么的少,呵呵)。

启用Apache MPM event模块

查询Apache 2.4当前正在使用的模块

返回值会是event, prefork, worker中的一个,如果返回了event,则说明我们已经成功启用了Apache MPM event模块。

目前实际测试来看,确实能非常明显的加快网站的访问速度,访问延迟明显变短。

参考链接