【问题标题】:Google Analytics For website running on tomcat谷歌分析对于在tomcat上运行的网站
【发布时间】:2014-05-16 14:39:22
【问题描述】:

我有一个测试服务器 (Amazon EC2)。我有很多网站使用tomcat在上面运行。我想使用谷歌分析来分析一个网站。我的网站网址是http://my.website.com:8080/site/。我已经设置了一个谷歌分析帐户。但是谷歌不允许我在属性设置中输入这个网站名称作为默认 url,但是当我删除端口号时它允许我http://my.website.com/site/

现在我已将跟踪代码粘贴到我的项目文件中。但我在我的谷歌分析帐户中看不到任何分析。

我对此进行了很多研究。也经历了这个Getting Google Analytics to see a test server 但看不懂。

请指导我完成这个。

【问题讨论】:

标签: javascript tomcat google-analytics tomcat7


【解决方案1】:

您应该使用端口 80 而不是 8080,而不是您的 url 将是 http://my.website.com/site/

您可以在tomcat配置文件server.xml中设置端口号,或者如果服务器上有更多http服务,请使用代理服务器(即nginx)。

【讨论】:

  • 我在 80 端口上运行了一些其他服务。
  • 所以,正如我所写,您应该使用代理。我建议 nginx 作为代理服务器 nginx.org.
  • 如果我使用这种方法会怎样。 puschitz.com/InstallingTomcat.html#RelayingHTTPPort
  • 如果您使用 iptables 重定向端口,您将无法将它用于在端口 80 上运行的其他服务,如果您使用的是 apache,它会停止正常工作,因为整个流量将被重定向到雄猫。在您的情况下,Nginx 是我所知道的最佳解决方案。如果您不想使用 nginx,也许这会有所帮助tomcat.apache.org/tomcat-7.0-doc/proxy-howto.html
【解决方案2】:

使用 Universal Analytics,您可以尝试以下方法:

/** load google analytics **/
(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','http://www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXXXX-YY', 'auto');
ga('set', 'checkProtocolTask', function(){}); // Removes failing protocol check. @see: http://stackoverflow.com/a/22152353/1958200
ga('require', 'displayfeatures');
ga('send', 'pageview');

它应该通过将一个空函数传递给checkProtocolTask 来消除端口不匹配的问题。您应该能够在端口 8080 上继续。

此技巧也适用于 Google Chrome 扩展程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2013-09-06
    • 2023-01-31
    • 1970-01-01
    相关资源
    最近更新 更多