首页 > 解决方案 > Nginx 静态网页和带有环境变量 url 的 Docker

问题描述

我有一个 nginx web 服务器,里面有一个网页,可以进行一些 http 调用。我想全部停靠并使用参数 URL。有没有办法做到这一点?可能吗?

标签: dockernginxenvironment-variables

解决方案


如果我理解正确,您需要一个动态网页,其中包含对可配置 URL 进行 HTTP 调用的脚本。这可以使用Server Side Includes来实现。与nginx. 该网页可以包括在容器初始化期间创建的配置文件。

nginx首次启动映像时,将文件创建到文档根目录中。例如:

docker run -e URL=http://stackoverflow.com --entrypoint="/bin/sh" nginx  -c 'echo ${URL} > /usr/share/nginx/html/url_config & exec nginx -g "daemon off;"'

对于真实世界的场景,基于入口点创建自定义图像nginx并覆盖入口点。入口点使用 URL 环境变量创建配置文件,并最终nginx在前台启动。

#include使用SSI 指令在网页中包含配置文件

<script>
...
const http = new XMLHttpRequest();
const url = '<!--#include file="url_config" -->';
http.open("GET", url);
http.send();
...

ssi on;通过添加指令配置 nginx 以处理 SSI

http {
    ssi on;
    ...
}

希望能帮助到你。


推荐阅读