Setting variable and using HttpSubModule

Jim Ohlstein jim at ohlste.in
Sun Jun 26 01:06:23 MSD 2011


On 6/25/11 3:59 PM, Maxim Dounin wrote:
> Hello!
> 
> On Sat, Jun 25, 2011 at 12:39:19PM -0400, Jim Ohlstein wrote:
> 
>> 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.
> 
> Syntax is
> 
>     set $variable "value";
> 
> Using "=" is a syntax error.
> 
> http://wiki.nginx.org/HttpRewriteModule#set

Thanks Maxim. My goof. That solved it.

> 
>> 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.
>>

[...]

>>
>> 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.
> 
> There result is exactly as configured, it's not clear what you expect here.

That's what I found out. :p I did some digging before I asked for help
here and I found
http://www.lowendtalk.com/questions/7846/automatically-reference-ga-codes-from-external-file-using-nginx-substitution-module
which had that configuration and was obviously *wrong*. However that is
where I got the idea to at try it.

Again, thanks for the help.


-- 
Jim Ohlstein



More information about the nginx mailing list