惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
量子位
博客园 - 三生石上(FineUI控件)
Hacker News - Newest:
Hacker News - Newest: "LLM"
月光博客
月光博客
博客园 - 叶小钗
爱范儿
爱范儿
S
SegmentFault 最新的问题
V2EX - 技术
V2EX - 技术
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Security Archives - TechRepublic
Security Archives - TechRepublic
小众软件
小众软件
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security @ Cisco Blogs
V
Visual Studio Blog
V
V2EX
Schneier on Security
Schneier on Security
Cloudbric
Cloudbric
有赞技术团队
有赞技术团队
C
Check Point Blog
T
Troy Hunt's Blog
Google DeepMind News
Google DeepMind News
Google DeepMind News
Google DeepMind News
TaoSecurity Blog
TaoSecurity Blog
Engineering at Meta
Engineering at Meta
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Schneier on Security
N
Netflix TechBlog - Medium
Project Zero
Project Zero
Last Week in AI
Last Week in AI
N
News and Events Feed by Topic
Microsoft Azure Blog
Microsoft Azure Blog
NISL@THU
NISL@THU
T
The Exploit Database - CXSecurity.com
AWS News Blog
AWS News Blog
博客园 - 聂微东
S
Securelist
腾讯CDC
O
OpenAI News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
About on SuperTechFans
Microsoft Security Blog
Microsoft Security Blog
B
Blog
博客园 - 【当耐特】
Y
Y Combinator Blog
N
News and Events Feed by Topic
Recorded Future
Recorded Future
Vercel News
Vercel News
PCI Perspectives
PCI Perspectives
Security Latest
Security Latest

膨胀自留地

使用CloudFlare标记管理功能优雅的使用谷歌分析 四天轻松版北京旅游攻略 Adsense税务居住地证明申请教程:如何申请中国税收居民身份证明以及Google Adsense更新新加坡税务信息教程 常见的 VPS 优化措施 HTML实现table表格移动端自动转为卡片样式 个人网站接入 Google 登录 如何从 GitHub 永久删除泄露的 .env 文件 Cloudflare设置www的域名跳转到不带www的域名 顶级iOS神器!全面解开App Store限制,AssPP Pro保姆级教程 BroadcastChannel将你的 Telegram Channel 转为微博客 Medama开源轻量级网站统计(分析)系统 白嫖一个网站监控面板:uptime-kuma 部署TraffMonetizer利用闲置VPS挂机赚钱 Counterscale-使用CloudflareWorkers部署的免费网站数据统计工具,界面类似umami 封装一个最简单的Axios,避免过度封装! 如何使用Cloudflare Email Routing创建域名邮箱免费发送邮件 使用Cron定时更新Hosts解决Gihub无法访问问题 容器化MariaDB/Mysql实现定时备份 JetBrains全家桶许可证服务器怎么找,JetBrains激活教程 图片加速接口:缓存图片,加速访问,解决防盗链 MySQL模糊查询再也不用like+%了,全文索引介绍及使用简介 为什么这么多人推荐你办理流量卡?流量卡怎么赚钱?怎么避坑? 借助Cloudflare Worker实现Google Analytics反代加速,规避广告屏蔽插件的拦截 etcd入门之在Centos上安装部署 Grafana在linux下安装和基本使用入门 Prometheus介绍、安装和基本功能快速入门 无需加速器,油猴插件解锁xbox云游戏 阿里云盘自动每日签到,无需部署,无需服务器 自定义VSCode终端主题样式 一行 CSS 代码实现响应式布局 – 使用 Grid 实现的响应式布局 加不加「/」?Nginx location 路径与 proxy_pass 的规律 Mac上Git多账户SSH配置 python 脚本命令行调用 cloudflare Wokers AI 对话示例 使用acme.sh自动申请Let's Encrypt泛域名证书 centos离线(内网环境无外网)安装docker 什么是ChatGPT API公益水龙头? Mysql8主从复制实现过程记录 纯绿色无需安装软件,10行代码即可长期关闭Windows系统更新 使用 Vercel 部署 Umami,从零开始搭建一个免费的个人博客数据统计 JS | JS实现Web应用或网站发送浏览器Notification通知 Go | 使用rsrc给golang打包的exe文件添加程序图标 Go | 基于最新的 ChatGPT API 实现命令行版 ChatGPT JS | 原生js仿ElementUI消息提示组件,含生命周期钩子 Go | 包依赖管理工具go mod使用详解 Go | 解决低版本Goland调试问题:Version of Delve is too old for this version 薅京东羊毛必备抓取Cookies教程 Typecho纯代码生成sitemap站点地图 Lazysizes.js图片懒加载的使用 typecho使用文件缓存加快打开速度 白嫖移动,联通,电信手机短信通知 MacOS上使用可视化界面给ESP8266烧录MicroPython教程 Fail2Ban安装使用及常用配置教程 通用的检测到广告屏蔽插件进行弹窗提示实现方法 如何在 ESP 单片机上选用合适的引脚 如何找回微信已过期文件教程 一键脚本安装的 HASSIO 如何卸载呢 SqliteAdmin 宝塔面板sqlite数据库可视化管理(简单版) PostToBingIndexNow插件实现typecho发布文章自动推送到Bing站长平台 javascript | 原生JS多语言切换简单实现 Mysql8安全清理mysql.slow慢查询日志和general_log文件 NUC8黑苹果更新OpenCore引导教程,黑苹果EFI分区空间占满处理方法 局域内网的服务器利用个人电脑做跳板机访问互联网 ssh-chat- SSH命令行下聊天摸鱼服务 Python小技巧之不用GUI,照样实现图形界面 Linux下防御/减轻DDOS攻击工具DDoS deflate安装配置教程 据传宝塔面板后台会上传服务器上运行的网站信息 如何定位Mysql中CPU占用高的查询语句 python使用多线程threading模块长期循环运行内存泄漏问题解决 Linux系统VI方向键、删除键按出来是字母解决方法 python | 协程与多进程的完美结合 新安装Debian系统常用设置 MAC系统制作ubuntu启动U盘教程 利用树莓派打造时间机器 TimeMachine MAC游戏 | 公路救赎 Road Redemption May 2020 Mac摩托车竞速暴力游戏中文破解版 MAC游戏 | 笨拙英雄 Clunky Hero 0.92 Mac手绘风格的类银河战士恶魔城动作冒险游戏破解版 MAC游戏 | 拉力赛艺术Art of Rally 1.0.4b Mac卡通风格的赛车竞速游戏破解版 MAC游戏 | Len's Island 1.0 Mac 破解版 开放世界农场模拟探索游戏 MAC游戏 | 洛基Röki3.2_Mac点击型冒险游戏中文破解版 typecho聚合全文输出feed设置仅输出摘要自动截取正文前200个字符 树莓派开启Samba共享(smb) 为什么网站知道我的爬虫使用了代理? 给Edge大声朗读同源的微软tts增加下载音频按钮(tampermonkey脚本) 为了了解女朋友的小心思,我用 python 爬了榜姐微博下 70000 个女生小秘密! MAC外接屏幕亮度调节工具——BrightnessE mysql8利用CTE特性实现递归查询 漫威宇宙时间线观看顺序(持续更新) Typecho 评论弹幕插件下载及食用教程 反爬虫的极致手段,几行代码直接炸了爬虫服务器 教你轻松拥有无限个邮箱 核弹级教程:手把手教你白嫖上百个订阅节点 部署 Monit 来监控服务 「工具」Windows 卸载软件,这一个就够了 闲置服务器薅京东的羊毛—青龙面板部署与京东签到 捡垃圾8.5元智能wifi插座拆解,刷ESPHome接入HomeAssistant-超低价ESP8266开关 RS1.ES 免费Linux云服务器,单次使用3小时,不限次数! Typecho 启用 Service Workers 浏览器缓存加速首屏访问 Waiting for table metadata lock问题处理 关于a标签target_blank使用rel=noopener 宝塔默认站点泄漏源站IP,使用CDN后censys.io出现源站IP泄漏解决方法 百度云加速提示:502网关错误,解决办法以及如何添加百度云加速节点IP白名单教程
使用Nginx反向代理解决 Google Analytics 访问问题
2023-01-13 · via 膨胀自留地

#极限操作 2023-01-13 11:19:00 | 全文 744 字,阅读约需 2 分钟 | 加载中... 次浏览

👋 相关阅读


目前可以选择的免费网站统计越来越少,有很多人选择自建统计,但是自建统计需要维护,所以尝试使用了 Google Analytics 作为网站统计工具。

图片alt

因为众所周知的原因,Google Analytics 在中国大陆访问不是很顺畅,并且很多国产浏览器都自带广告拦截插件,导致谷歌统计后台统计的数据与实际差距很大。

那么有没有什么更好的方案呢?有的,那就是使用中间件进行反代(前提是服务器本身在能够流畅访问谷歌统计的国家或地区)。

解析

首先为了成功反向代理,需要向配置块中添加 DNS 解析,用于请求谷歌的接口,一般情况下用 127.0.0.1 就可以使用,但是为了防止部分机房的 DNS 请求篡改可以使用自定义 DNS 进行解析。

## CloudFlare Public DNS (IPv4 & IPv6)
#resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001];
## Google Public DNS (IPv4 & IPv6)
resolver 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844];

根据情况选择一个开启即可。

处理

然后添加反向代理的主逻辑,添加两个 location 将请求进行转发,并且使用 sub_filter 模块进行内容重写。

    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;
    
        ## cache on server
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_valid 200 304 60m;
    
        ## cache in client browser
        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 'google-analytics.com'  'wangtwothree.com';
        sub_filter 'www'  'ga';
        
        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 {
        resolver 8.8.8.8;
        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;

        proxy_hide_header "Expires";
        proxy_hide_header "Pragma";
        add_header X-Content-Type-Options "nosniff";
    }

然后在配置文件中加入以上部分,然后在前端引用地址时,将地址换为你的域名后面接谷歌统计引入脚本地址,比如:https://wangtwothree.com/gtag/js?id=G-CVJJJJJJJJ 。

然后就可以在后台看到统计脚本的访问日志了。

比如 Google Analytics 管理后台生成的嵌入代码如下:

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxxxxxx-x"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());

gtag('config', 'UA-xxxxxxxxx-x');
</script>

则你添加的代码就应该是这样的:

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://wangtwothree.com/gtag/js?id=UA-xxxxxxxxx-x"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());

gtag('config', 'UA-xxxxxxxxx-x');
</script>

VIA

使用 NGiNX 异步处理 Google Analytics 加速访问 - VVavE https://www.vvave.net/archives/nginx-forward-google-analytics-optimized-loading-speed.html

使用Nginx反向代理解决 Google Analytics 访问问题 - 知乎 https://zhuanlan.zhihu.com/p/460606188


×