谷歌分析(google analytics)是非常好用的网站分析工具,由于需要上传分析数据,如果网站主要目标在国内,那么用户的浏览器就会报 ERR_SSL_PROTOCOL_ERROR 的错误,就是访问不了谷歌分析的地址,原因不多说,这边文章来说说如何解决这个问题。
现象
当网站放上谷歌分析(google analytics)提供的代码后(如下图)。
能看到域名是googletagmanager.com,这域名国内访问不了,所以会导致浏览器报错,在浏览器控制台能看到具体报错信息,是个 ERR_SSL_PROTOCOL_ERROR 错误。
那是不是就不能用谷歌分析了呢,那当然不是,困难有,但解决办法更多。一个方法就是可以用代理来解决这个问题。
代理配置
如果你的站点是用nginx,那么代理配置如下,如果用别的,可是去搜搜怎么配置,但是原理都是一样的。
#------ google analytics proxy ------
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' 'xxxx.com'; #这里的xxx.com换成您的域名
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://www.google-analytics.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; # browser no-cache control
}
#------ google analytics proxy ------
引用修改
上面代理配置完成后,就差这最后一步了,就是在引用谷歌分析(google analytics)代码的地方,把 googletagmanager 的域名改成自己的域名。
如果是wordpress建的站可以用WPCode这个插件,全局修改,如下图。这里要www.googletagmanager.com的域名换成自己站点的域名,如www.你的域名.com
查看效果
上面都配置完成后,nginx也 reload后,这问题就解决了,看,报错没了
欢迎关注我的公众号“SOHO小站”,原创技术文章第一时间推送。