nginx 和 site.erb:标记为两个不同域和两组不同 IP 的内部用户

nginx 和 site.erb:标记为两个不同域和两组不同 IP 的内部用户

我有一个 nginx 服务器和一个 site.erb 文件以及两个不同的域(domain1 和 domain2)。目前,当有人从一组特定的远程 IP 地址 ( set $analytics "'userType': 'internal'") 访问网站时,将设置一个标签(用于 Google Tag Manager),并将此信息发送到 Google Analytics:

# Set userType variable for Google Tag Manager (default is external)
set $analytics "'userType': 'external'";

# LAN traffic is internal therefore,
if ($remote_addr = zzz.zzz.zzz.zzz) {
  set $analytics "'userType': 'internal'";
}

# The Wifi traffic is internal therefore, 
if ($remote_addr = yyy.yyy.yyy.yyy) {
  set $analytics "'userType': 'internal'";
}

sub_filter "'userType': 'external'" $analytics;

现在的任务是当访问域 1 时将一组 IP 地址标记为内部,当访问称为域 2 的不同虚拟主机域时将另一组 IP 地址标记为内部。

有没有办法使用嵌入式 ruby​​ 文件 (site.erb) 来执行此操作,或者有没有办法让 Nginx 执行此操作并将其设置为文件中的参数site.erb。我对 nginx 或嵌入式 ruby​​ 不太熟悉,因此,如果能简单解释一下如何操作就更好了。

我认为类似下面的方法可能会有效,但不确定server_namenginx 中是否是一个可行的变量:

server_name= Something_Something

提取 =(从 server_name 变量中提取 domain1.com 部分或 domain2.com 部分,具体取决于它是什么)

domain1_internal_ip_array=abc

domain2_internal_ip_array=xyz

设置分析==外部

如果 Extraction == domain1.com AND remote_ip == domain1_internal_ip_array 那么 Analytics == internal

如果 Extraction == domain2.com 并且 remote_ip == domain2_internal_ip_array 那么 Analytics == internal

相关内容