我有一个 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_name
nginx 中是否是一个可行的变量:
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