
secoresearch/apache-varnishapache-varnish 是一个集成了 Apache Web 服务器、PHP 解释器和 Varnish 缓存的 Docker 镜像。该镜像旨在提供一个开箱即用的 Web 服务解决方案,通过 Varnish 缓存机制提升静态内容和动态页面的访问性能,适用于需要高效内容分发的 Web 应用场景。
| 变量名 | 描述 | 默认值 |
|---|---|---|
| PATH_VAR_APACHE | Apache 运行目录 | /var/run/apache2 |
| APACHE_LOG_DIR | Apache 日志目录 | /var/log/apache2 |
| FILE_LOG_APACHE_ERROR | 错误日志文件路径 | $APACHE_LOG_DIR/error.log |
| FILE_LOG_APACHE_ACCESS | 访问日志文件路径 | $APACHE_LOG_DIR/access.log |
| FILE_CONF_PORTS | 端口配置文件路径 | /etc/apache2/ports.conf |
| FILE_CONF_VHOST | 虚拟主机配置文件路径 | /etc/apache2/sites-available/000-default.conf |
| PATH_HTML | 网站根目录 | /var/www/html |
| APACHE_OPTIONS | 网站目录的 Options 指令值 | "Indexes FollowSymLinks" |
| APACHE_ALLOW_OVERRIDE | 网站目录的 AllowOverride 指令值 | "None" |
| RUN_APACHE_VARNISH | 启动脚本路径 | "/run-apache-varnish.sh" |
| EXEC_APACHE_VARNISH | 执行 Apache 和 Varnish 的命令 | "exec $RUN_APACHE_VARNISH" |
默认情况下,虚拟主机配置文件 FILE_CONF_VHOST 会在入口点 RUN_APACHE_VARNISH 执行时通过 generate-conf-vhost.sh 脚本生成。生成过程受以下环境变量控制:
APACHE_OPTIONS: 控制 PATH_HTML 目录的 Options 指令APACHE_ALLOW_OVERRIDE: 控制 PATH_HTML 目录的 AllowOverride 指令如果在执行 RUN_APACHE_VARNISH 前 FILE_CONF_VHOST 文件已存在且非空,则会跳过虚拟主机配置生成过程。
关于 Varnish 缓存的详细配置,请参考 docker-varnish 仓库 文档。
由于 rahti-scripts 是子模块,克隆仓库时建议使用:
bashgit clone --recursive <repository-url>
更新代码时使用:
bashgit pull --recurse-submodules
bash./docker-build.sh [-c]
参数说明:
-c: 无缓存构建bash./docker-run.sh
默认情况下,服务可通过 localhost:8080 访问。
bashdocker run -d -p 8080:80 \ -e APACHE_OPTIONS="Indexes FollowSymLinks MultiViews" \ -e APACHE_ALLOW_OVERRIDE="All" \ -v $(pwd)/html:/var/www/html \ --name apache-varnish <image-name>
yamlversion: '3' services: apache-varnish: build: context: . args: - NO_CACHE=true ports: - "8080:80" environment: - APACHE_OPTIONS=Indexes FollowSymLinks - APACHE_ALLOW_OVERRIDE=All volumes: - ./html:/var/www/html - ./vhost.conf:/etc/apache2/sites-available/000-default.conf restart: always
对于复杂配置需求,可通过以下方式自定义:
FILE_CONF_VHOST 文件或通过挂载方式替换$EXEC_APACHE_VARNISH 启动 apache+varnish 服务进入运行中的容器:
bashdocker exec -it <container-name> bash
bash./rahti-init.sh
也可通过 Web 界面完成,具体模板和参数参见 rahti-params.sh 文件。
bash./rahti-rebuild.sh
也可通过 Web 界面操作:导航到相应的 BuildConfig 并点击 "Start Build"。
bash./rahti-scrap.sh
模板会生成用于触发构建和重新部署的 WebHook。可通过以下命令查看 WebHook URL:
bashoc describe bc <ENVIRONMENT>-<APP_NAME> | grep -A 1 "Webhook" oc describe bc -l "app=<APP_NAME>,environment=<ENVIRONMENT>"
或通过 OpenShift Web 控制台导航到相应的 BuildConfig 查看。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务