docker - Nginx 静态网页和带有环境变量 url 的 Docker
问题描述
我有一个 nginx web 服务器,里面有一个网页,可以进行一些 http 调用。我想全部停靠并使用参数 URL。有没有办法做到这一点?可能吗?
解决方案
如果我理解正确,您需要一个动态网页,其中包含对可配置 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;
...
}
希望能帮助到你。
推荐阅读
- reactjs - 登录时的每次页面刷新都会让我回到仪表板(使用受保护路由的持久登录)
- reactjs - 反应中循环中的元素的useRef
- scrapy - scrapy-splash 如何过滤重复项?
- ios - 如何在 Flutter 中为 IOS 14 上显示的 Admob 原生广告请求 App Tracking Transparency 授权?
- ios - 将 Picker 的值设置为对象的索引
- angular - 使用 Angular 11 中的 Hammer.JS,应用程序无法识别手势,例如平移
- javascript - 创建多个 DIV 并分配唯一 ID
- tensorflow.js - 有没有办法创建 TensorFlow.js 的本地调试版本?还是公开可用的非缩小版呢?
- r - 我如何将不同的参数归因于函数 strsplit(split = " ")?
- javascript - “无法解码图像:'primary.png'”安装 chrome 扩展程序时