Nginx反代Google Analytics配置

虽然没几个人访问,但是我还是给这小博客上了Google Analytics,没有别的,就是想了解下大概有几个人会访问,并了解下是通过那些关键字进来的。

但是直接黏贴Google给的代码之后,相关代码严重拖慢访问速度,浏览器一直在转啊转的,用Google Chrome的开发者工具查看发现,就是加载GA代码导致的,于是打算通过Nginx去Google加载相关代码。

不多说,直接上代码:

location /analytics.js {
    proxy_pass https://www.google-analytics.com;
    proxy_hide_header Strict-Transport-Security;
}

到相关网站的server段内加上上面这行就行了,重启Nginx,然后就可以通过域名加上/analytics.js访问GA的JS代码了,比如我的就是:
https://zoco.me/analytics.js
然后将Google给的代码里面的域名改成网站域名,如下所示:

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://ar.zoco.me/analytics.js','ga');
ga('create', 'UA-97021222-1', 'auto');
ga('send', 'pageview');
</script>

保存到模板文件之后,重新打开就行。


这里有一点特别要说明的,上面Nginx配置中有一行proxy_hide_header,这一行建议加上,可能是因为GA使用了HSTS,如果不加上这行,在浏览器加载本地域名下的JS文件时,会把本地域名也加上HSTS,这样会导致当前域名所有子域名在一些新的浏览器下默认启用HTTPS,这样即使输入HTTP前缀也会自动重定向到HTTPS,如果有些子域名没有配置HTTPS则无法打开。