小编Eri*_*ers的帖子

Apache mod deflate 不压缩 php 输出

我已经启动并运行了 mod_deflate。我可以在我的 apache 服务器中放入一个 something.txt 文件并使用 curl 来检查它。

curl --compressed -I /somefile.txt 给了我以下很好的压缩信息:

Vary: Accept-Encoding
Content-Encoding: gzip
Run Code Online (Sandbox Code Playgroud)

但是如果我使用 /some.php 我会回来:

Accept-Ranges: bytes
X-Powered-By: PHP/5.4.4-14+deb7u5
Run Code Online (Sandbox Code Playgroud)

但没有内容编码:gzip,我使用的 .htaccess 有多个选项:

SetOutPutFilter DEFLATE
Run Code Online (Sandbox Code Playgroud)

或者

AddOutputFilterByType DEFLATE application/json
Run Code Online (Sandbox Code Playgroud)

我还检查了 php.ini 中的 zlib 压缩是否关闭,并尝试将输出缓冲区设置为关闭。但无论我尝试什么,我都无法让 php 输出被 apache 压缩。从 apache 到 zip 的开销比我使用 php zlib 时少。

我看到了足够多的帖子,比如Apache 输出压缩适用于 CSS/JS 而不是 PHP,但可以从 php 压缩。我想要 apache 来处理它。

我一定在这里遗漏了一些愚蠢的东西。

更新:我解决了所有问题,也是因为给出的答案。最后它仍然没有100%起作用。这是由于安装了错误的软件包。使用了 apache2filter,这让我走错了路。

php mod-deflate apache-2.2

6
推荐指数
1
解决办法
1万
查看次数

如何保护 docker 主机不允许生根

我正在尝试使服务器上的 docker 更安全。主要问题是大多数人说“如果一个人可以访问 docker,他们也可以是 root”,对于少数管理员来说,这不是您想要的。

详细地说,他们可以使用-v并挂载/etc/mnt容器中并更改影子文件并获得对主机的访问权限。他们也可以使用-d, 或特权选项来做更多的事情。

所以基本上,我想“尝试”和限制一些事情。

  1. 卷绑定挂载
  2. 特权
  3. --add-cap
  4. -d (某些项目?)

到目前为止我的想法:

  • docker bash 脚本的别名,在其上使用 sudo 并正则表达式他们不应该做的所有事情。
  • 打开远程 api,保护它,也许用 nginx 和 nginx 中的正则表达式反向代理它不应该做的事情。
  • 使用其他工具?Mesos/马拉松/Swarm/造船厂/随便什么

可选项目是在提交到 git 代码时制作容器,并让“检查器”验证内容Dockerfile并为它们创建图像。然后对该映像进行签名并自动部署它。(但这不会再给他们太多自由)

此外,删除绑定卷并不是最好的。如果我们有一个 docker 插件,上面写着“你只能/data以用户 X 的身份挂载”,其中USERinDockerfile是那个用户 X,那就简单多了。

docker-novolume-plugin这样的东西对于卷来说已经是一个不错的开始,虽然不限制绑定卷。

最后的问题是,我如何让用户以他们自己的用户/docker 身份构建/拉取/运行 docker 映像,而无法根系统。只要它有效,就不必完美。

security docker kubernetes apache-mesos docker-compose

6
推荐指数
1
解决办法
1632
查看次数