Setting variable and using HttpSubModule
    Jim Ohlstein 
    jim at ohlste.in
       
    Sat Jun 25 20:39:19 MSD 2011
    
    
  
I'm trying to insert google analytics code into an app by using the
directions at http://wiki.nginx.org/HttpSubModule.
In so doing, I first tried to set a variable as follows:
set $analytics = "var _gaq = _gaq || [];  _gaq.push(['_setAccount',
'UA-xxxxxx-xx']);   _gaq.push(['_trackPageview']);  (function() {    var
ga = document.createElement('script'); ga.type = 'text/javascript';
ga.async = true;    ga.src = ('https:' == document.location.protocol ?
'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';    var s
= document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);  })();";
to get the text into the variable but of course that generates an error:
nginx: [emerg] invalid number of arguments in "set" directive in
/usr/local/etc/nginx/sites-enabled/mysite.com:12.
Searching Google I found a few threads about trying to place the
contents of a file into a variable but there didn't seem to be a way.
I also tried simply adding the text into the "sub_filter" line but that
also threw an error:
nginx: [emerg] unexpected "_" in
/usr/local/etc/nginx/sites-enabled/mysite.com:16
Using the following:
server {
  ...
  sub_filter      </head>
  '</head><script language="javascript" src=/home/jim/ga.js></script>';
  sub_filter_once on;
  ...
}
resulted in the following:
jim$ curl http://mysite.com/somepage
...
</head><script language="javascript" src=/home/jim/ga.js></script>
...
Putting the path in quotes changed nothing other than that portion being
in quotes.
Obviously I'm doing something wrong. Any help would be appreciated.
-- 
Jim Ohlstein
    
    
More information about the nginx
mailing list