如何在nginx上为每个网站和页面添加内容

时间:2018-05-23 21:39:54

标签: nginx

我需要在我控制的每个网站的每个页面中添加一段内容(由于GDPR)。在IIS中,我创建了一个自定义模块,加载到服务器GAC中,并为每个站点添加了一行代码。 web.config中。我现在正试图在LEMP堆栈上做同样的事情。

每个站点的消息和接口完全相同,因此首选解决方案应从服务器上的单个文件读取内容并附加到每个标记的末尾。 addition_module add_after_body似乎是我想要做的最接近的事情。一个小的负面因素是它需要位于location块内,因此需要在每个站点上复制解决方案;但更大的负面因素是add_after_body转到URI而不是文件,因此每个站点都需要具有相同的文件。

我也试过了。

add_after_body http://localhost/gdprmessage.html;

但这导致每页都包含404消息。

有没有办法在服务器上的每个网站上的每个页面上附加内容?

如果没有,使用nginx include,我可以最小化每个网站的变化' conf,但是如何添加可以在单个位置维护的内容?

1 个答案:

答案 0 :(得分:0)

add_after_body指令可以放在location块或周围的server块,甚至是周围的http块中。有关详细信息,请参阅this document

但是,似乎URI确实需要是本地位置,并且不能接受方案主机名

正如您所建议的,最简单的解决方案是include每个server块中的文件,包含(例如):

add_after_body /gdprmessage.html;
location = /gdprmessage.html {
    root /path/to/common/file;
}