如何在nginx中向虚拟主机上的所有页面添加一些内容?

时间:2017-09-28 11:01:54

标签: nginx

我在nginx中将不同的静态网站配置为虚拟主机。

每个网站都是多个.html文件(许多代码都是重复的)。

如何通过nginx配置一次向一个域的所有页面添加脚本/样式?这可能吗?

例如,我想在所有网页(内部)和google-site-verification中添加googletagmanager脚本,而不会触及这些文件。

1 个答案:

答案 0 :(得分:1)

因此,我能想到的最简单的解决方案是将原始配置从端口80移至8080,将proxy_pass 80移至8080

server {
   listen 80;
   server_name  xyz;
   set $domain_script '
       <script>alert("Added by nginx"); </script>
   ';

   location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header Host $host;
      sub_filter '<head>' '<head>$domain_script';
   }
}

server {
   listen 8080;
   # <!-- original config goes here-->
}

我进行了样本测试,对我来说工作得非常好

nginx modified html

唯一假设是每个页面都有<head>标记