是否可以强制 nginx 在将请求代理到该主机之前直接从 /etc/hosts 文件解析主机名?

问题描述 投票:0回答:1

我想要实现的是将请求通过 nginx 反向代理实例代理传递到分配有动态 IP 的远程服务器。

我能够动态更新 /etc/hosts 映射,但是每当 IP 更改时,nginx 都不会刷新内存中的映射,从而使任何后续代理请求失败。如果我在更新 /etc/hosts 映射后重新启动 nginx 实例,它将再次开始工作。如果可以的话我不想这样做。

我的 nginx 代理位置定义在这一行:

location / {
        set $backend https://my.virtual.domain$uri$is_args$args;
        proxy_pass $backend;
        include proxy_params;
    }

如果可能的话,我更喜欢不需要安装本地 DNS 服务器的解决方案。我需要一些东西来指示 nginx 时不时地读取 /etc/hosts 文件内容。

/etc/hosts 映射

#.#.#.#  my.virtual.domain

谢谢

nginx nginx-reverse-proxy nginx-config
1个回答
0
投票

我最终使用了热 nginx 重新加载选项,它只是指示 nginx 重新加载设置。当调用reload时,hosts文件新内容也会被加载。

从我设法找到的内容来看,我正在寻找的功能似乎仅在 nginx 的商业版本中可用:resolve属性。

我目前不愿意为此功能付费,所以我现在会坚持使用热重载。

© www.soinside.com 2019 - 2024. All rights reserved.