Welcome! Log In Create A New Profile

Advanced

Re: Setting variable and using HttpSubModule

Maxim Dounin
June 25, 2011 04:00PM
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

> 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

Probably some other syntax error. Please make sure you've quoted
text properly.

Somthing like this works fine here:

sub_filter "</head>"
"<script>
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);
})();
</script></head>";

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

Maxim Dounin

_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

Setting variable and using HttpSubModule

Jim Ohlstein June 25, 2011 12:40PM

Re: Setting variable and using HttpSubModule

Maxim Dounin June 25, 2011 04:00PM

Re: Setting variable and using HttpSubModule

Jim Ohlstein June 25, 2011 05:08PM

Re: Setting variable and using HttpSubModule

Maxim Dounin June 25, 2011 06:14PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 205
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready