Nginx 重定向到请求文件中写入的 URL

Nginx 重定向到请求文件中写入的 URL

我需要设置动态重定向。例如,用户打开一个链接:http://www.example.com/2/3/4/并查看以下地址的页面:http://www.example2.pl/something

我知道 RewriteMap,但我需要一些不需要重新启动 nginx 的东西,它快速、简单,并且易于与 sftp 一起使用(服务器上没有数据库)。

我的想法是推送带有 URL 的文件并配置 nginx 以使用此文件内容 - 这对我来说很好,因为我可以轻松地通过 sftp 完成此操作。

我怎样才能在 nginx 中实现这一点?

我的第二个想法是将此文件返回给用户并使用 javascript 重定向。我更喜欢第一个解决方案,所以请告诉我如何读取请求的文件内容并重定向到内部的 URL。

也许还有其他解决方案,例如 DNS,请告诉我哪个是最好的。

答案1

您可以做的是将包括location指令的配置文件上传到特定目录。该目录将包含(即通过include yourDir/*.conf)在您的server配置中。

不过,你需要向 nginx master 发出信号来重新加载配置。@MichaelHampton 说得对,你不需要重新开始服务器。可以通过发出命令service nginx reload或 来重新加载服务器配置而无需停机kill -SIGHUP <nginx master process ID>

nginx 中没有“持久目录监视 + 文件系统更改时重新加载”功能。您需要编写脚本(即使用 Lua),但无论如何都不建议这样做。您可以创建一个 cron 任务来定期重新加载 nginx 配置……在我看来,这看起来也很肮脏。

相关内容