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