小编hal*_*fer的帖子

带有环境变量的 Apache 自定义标头

我尝试使用 Apache 服务器 2.4.6 和 headers_module 设置带有环境变量**的自定义 HTTP 标头。

我在端口 80 上的 HTTP VHost 中工作。

一切都按预期进行,基本示例如下:

Header set MyHeader "%D %t"

我已阅读 mod_headers 的 Apache 文档:https://httpd.apache.org/docs/2.4/en/mod/mod_headers.html#header

据说可以使用以下方式访问环境变量 %{ENVVARNAME}e

(ENVVARNAME 是 ENV 变量的名称)

我还阅读了其他帖子,但没有真正有效的答案: Apache set custom header with an environment variable

但我的问题是添加一个标头而不是像 HOSTNAME 环境值那样标识我的 Apache 服务器

  1. 我试过这个

Header Set X-Serv %{HOSTNAME}e

不成功:始终显示 X-Serv:{null} 而不是值

  1. 我也尝试过:

SetEnv myvar ${HOSTNAME} Header set X-Serv %{myvar}e

没有成功:它显示在我的 HTTP 标头中:X-Serv: %{myvar}e

我还尝试了其他一些不同的组合:

请注意:我的 HOSTNAME 环境变量存在,并且它显示在“env”命令中,其中 apache 用户拥有 httpd 进程

任何想法?

environment-variables http-headers apache-2.4

8
推荐指数
2
解决办法
2万
查看次数

如何使用容器自动删除功能自动重启我的 Docker 容器?

我有一个通用的 VPS,并且正在对它的应用程序进行 Dockerising。上面将有大约 5-6 个容器,其他很少,因此可以根据需要对盒子进行简单的重建。

对于每个应用程序,我都有一个启动脚本。WordPress 容器如下所示:

#!/bin/bash

# Get the host IP address
export DOCKER_HOSTIP=`ifconfig docker0 | grep "inet addr" | cut -d ':' -f 2 | cut -d ' ' -f 1`
echo "Connecting to database on Docker host ${DOCKER_HOSTIP}"

docker run \
    --add-host=docker:${DOCKER_HOSTIP} \
    --network dockernet \
    --network-alias jonblog \
    --detach \
    --restart always \
    --rm \
    jonblog
Run Code Online (Sandbox Code Playgroud)

但是,这会返回错误:

冲突选项:--restart 和--rm

有几张 Docker 票说这是明智的,但我不明白。我想我的意思很明确:如果一个容器没有运行(例如在启动时),那么我想启动它。如果它死了,那么我希望容器被删除,并从基础映像创建一个新的容器。无论如何,容器应该是不可变的——我希望保留的任何状态,如媒体文件和日志,都将被写入卷。

所以,我想我应该放弃这个--restart标志,然后使用进程管理器来停止和启动 Docker 容器。我可以在这里使用Monit吗?我希望能够做这样的事情:

CHECK PROCESS jonblog MATCHING jonblog
  START PROGRAM = …
Run Code Online (Sandbox Code Playgroud)

monit docker

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