使用Nginx反向代理解决Google Analytics访问问题的方案如下:
问题分析:由于googletagmanager.com和google-analytics.com在中国大陆被屏蔽,直接访问会导致页面加载缓慢。通过Nginx反向代理和sub_filter模块,可以将这些域名替换为本地域名,从而绕过访问限制。
配置步骤:
设置反向代理:配置Nginx反向代理googletagmanager.com和google-analytics.com,确保能够正常获取资源。
使用sub_filter替换域名:在Nginx配置中使用sub_filter模块,将JS文件中的
www.googletagmanager.com
和www.google-analytics.com
替换为当前主机的域名$server_name。处理压缩和缓存:禁用压缩以确保sub_filter能够正确处理内容,并设置适当的缓存策略以提高性能。
处理特殊路径:对于/g/collect路径,需要特殊处理以正确传递用户IP地址和其他必要信息。
Nginx配置示例:
location /gtm.js { sub_filter 'www.googletagmanager.com' $server_name; sub_filter_types *; sub_filter_once off; proxy_set_header Accept-Encoding ''; proxy_pass https://www.googletagmanager.com;
proxy_redirect off; proxy_cache_key $host$uri$is_args$args; proxy_cache_valid 200 304 60m; expires 1h;}location /gtag/js { sub_filter 'www.googletagmanager.com' $server_name; sub_filter 'analytics.google.com' $server_name; sub_filter 'www.google-analytics.com' $server_name; sub_filter_types *; sub_filter_once off; proxy_set_header Accept-Encoding ''; proxy_pass https://www.googletagmanager.com;
proxy_redirect off; proxy_cache_key $host$uri$is_args$args; proxy_cache_valid 200 304 60m; expires 1h;}location /ga { proxy_set_header X-real-ip $remote_addr; rewrite ^/ga/(.*)$ '/$1?$args&uip=$remote_addr'; proxy_pass https://www.google-analytics.com;
proxy_set_header User-Agent $http_user_agent; break;}location /analytics.js { sub_filter 'www.googletagmanager.com' '$server_name'; sub_filter 'analytics.google.com' $server_name; sub_filter 'www.google-analytics.com' '$server_name/ga'; sub_filter_types *; sub_filter_once off; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Referer https://www.google-analytics.com;
proxy_set_header Host www.google-analytics.com;
proxy_pass https://www.google-analytics.com;
proxy_set_header Accept-Encoding "";}location /g/collect { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://analytics.google.com
$uri$is_args$args&uip=$remote_addr; proxy_redirect off; proxy_cache_key $host$uri$is_args$args; proxy_cache_valid 200 304 60m; proxy_cache off; expires epoch;}注意事项:
仅适用于Google Analytics 4:此配置仅适用于Google Analytics 4 with Google Tag Manager,不适用于Universal Analytics。
测试验证:配置完成后,务必进行测试以确保所有资源能够正确加载,并且数据能够正常采集。
性能优化:根据实际需求调整缓存策略,避免过度缓存导致数据不准确。
扩展应用:
反向代理其他Google服务:同样的方法可以应用于反向代理Google Adsense和reCaptcha,以规避广告拦截扩展的影响。
参考资源:可以参考相关的Nginx反向代理和sub_filter使用经验,以解决更多复杂场景下的问题。
通过以上配置和注意事项,可以有效地解决Google Analytics在中国大陆的访问问题,确保网站统计功能的正常运行。