Problem with Substitutions NginxHttpSubsModule
Weibin Yao
nbubingo at gmail.com
Fri Aug 13 07:44:16 MSD 2010
Martronic SA at 2010-8-12 23:59 wrote:
> I'm still on the condition rule,
> My code:
>
> ****************************************
>
> upstream hoplanet {
> server xxx.xxx.xxx.xxx:8080;
> server xxx.xxx.xxx.xxx:8081;
> }
>
> server {
>
> if ($hhtp_kookie !~* "__ac") {
> rewrite ^/bale(.*) http://bale.hopla-net.com$1/filter/;
> }
>
> location = / {
> proxy_pass http://hoplanet;
> }
>
> location /filter/$ {
> rewrite (.*)/fiter/$ http://bale.hopla-net.com$1;
> subs_filter_types text/html text/xml;
> subs_filter 'http://www.hopla-net.com/bale' 'http://bale.hopla-net.com';
> proxy_pass http://hoplanet;
> }
> }
>
I don't know if your configuration can work. But it is not necessary use
the external rewrite. What about like this:
server {
if ($hhtp_kookie !~* "__ac") {
rewrite ^(.*) $1/filter/;
}
location = / {
proxy_pass http://hoplanet;
}
location ~* ^(.*)/filter/$ {
set $true_uri $1;
subs_filter_types text/html text/xml;
subs_filter 'http://www.hopla-net.com/bale' 'http://bale.hopla-net.com';
proxy_pass http://hoplanet$true_uri;
}
}
> ****************************************
>
> Is that the good way to do it? or is there another way to write that
> conditional rule?
>
> Thank you!
>
> Martronic SA
> Martial Moret
>
> Le 11.08.2010 17:45, Martronic SA a écrit :
>> I have a new question!
>>
>> Is it possible to disable the subsitution rules (subs_filter) under a
>> particular condition (if)
>> I've tried to set those rules in a condition :
>>
>> if ($http_cookie !~* "__ac") {
>> subs_filter_types text/html;
>> subs_filter tt.site.domain aa.site.domain;
>> }
>>
>> The error is that it's not allowed to use this here.
>>
>> Any idea or solution?
>>
>> Thank you
>>
>> Martronic SA
>> Martial Moret
>>
>> Le 11.08.2010 10:19, Weibin Yao a écrit :
>>> Martronic SA at 2010-8-11 16:04 wrote:
>>>> That's it!!! I was zipping the content in the backend!
>>>> Thank you very much!
>>>>
>>>> Another question:
>>>> Do you think it's possible to "optimize" the html code using your
>>>> product and regular expressions?
>>>> Removing unnecessary backspaces and so on?
>>> No, it's the job you should do when you publish your pages. Maybe
>>> you can set the gzip_filter module on. That's fine.
>>>
>>> My module is processing the content on the fly. It will consume a
>>> lot of resource.
>>>
>>> I will publish my module soon in the develop branch:
>>> http://substitutions4nginx.googlecode.com/svn/branches/dev/. It's
>>> very steady now. I have do some refactor and optimizing works in
>>> this branch, you should have try.
>>>
>>> Thanks.
>>>>
>>>> Thank you again!
>>>>
>>>> Le 11.08.2010 09:26, Weibin Yao a écrit :
>>>>> Martronic SA at 2010-8-11 14:54 wrote:
>>>>>> here is a part error.log but there was nothing particluar in it:
>>>>> Hi,Martronic,
>>>>> You should activate debug log when nginx compiled with
>>>>> --with-debug configure argument.
>>>>> Do you compress the pages in the backends? or content-encoding
>>>>> else?
>>>>> Thanks.
>>>>>>
>>>>>> *********************************************
>>>>>>
>>>>>> 2010/08/10 18:07:16 [notice] 5917#0: *2003 "^hopla-net\.com$"
>>>>>> does not match
>>>>>> "www.hopla-net.com", client: 212.74.132.20,
>>>>>> server:www.hopla-net.com, request: "GET
>>>>>> /bale/sitemap.xml HTTP/1.1", host: "www.hopla-net.com:8201"
>>>>>> 2010/08/10 18:07:16 [notice] 5917#0: *2003 "^/(.*)" matches
>>>>>> "/bale/sitemap.xml", client:
>>>>>> 212.74.132.20, server:www.hopla-net.com, request: "GET
>>>>>> /bale/sitemap.xml HTTP/1.1", host:
>>>>>> "www.hopla-net.com:8201"
>>>>>> 2010/08/10 18:07:16 [notice] 5917#0: *2003 rewritten data:
>>>>>> "/VirtualHostBase/http/www.hopla-net.com:80/hopla-net/VirtualHostRoot/bale/sitemap.xml",
>>>>>> args:
>>>>>> "", client: 212.74.132.20, server:www.hopla-net.com, request:
>>>>>> "GET /bale/sitemap.xml
>>>>>> HTTP/1.1", host: "www.hopla-net.com:8201"
>>>>>>
>>>>>>
>>>>>> ************************************************
>>>>>>
>>>>>> This also:
>>>>>> ************************************************
>>>>>>
>>>>>> 2010/08/10 16:55:28 [emerg] 20796#0: bind() to 0.0.0.0:8201
>>>>>> failed (98: Address already in use)
>>>>>> 2010/08/10 16:55:28 [emerg] 20796#0: still could not bind()
>>>>>> 2010/08/10 17:01:07 [error] 20907#0: *176 open()
>>>>>> "/usr/html/w00tw00t.at.ISC.SANS.DFind:)"
>>>>>> failed (2: No such file or directory), client: 127.0.0.1, server:
>>>>>> localhost, request: "GET
>>>>>> /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1", host: "127.0.0.1"
>>>>>> 2010/08/10 17:05:57 [alert] 20903#0: worker process 20904 exited
>>>>>> on signal 9
>>>>>> 2010/08/10 17:05:57 [alert] 20903#0: worker process 20907 exited
>>>>>> on signal 9
>>>>>> 2010/08/10 17:20:38 [error] 24225#0: *1468 open()
>>>>>> "/usr/html/w00tw00t.at.ISC.SANS.DFind:)"
>>>>>> failed (2: No such file or directory), client: 127.0.0.1, server:
>>>>>> localhost, request: "GET
>>>>>> /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1", host: "127.0.0.1"
>>>>>> 2010/08/10 17:21:28 [error] 24225#0: *1577 open()
>>>>>> "/usr/html/w00tw00t.at.ISC.SANS.DFind:)"
>>>>>> failed (2: No such file or directory), client: 127.0.0.1, server:
>>>>>> localhost, request: "GET
>>>>>> /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1", host: "127.0.0.1"
>>>>>> 2010/08/10 17:24:20 [error] 28899#0: *137 open()
>>>>>> "/usr/html/w00tw00t.at.ISC.SANS.DFind:)"
>>>>>> failed (2: No such file or directory), client: 127.0.0.1, server:
>>>>>> localhost, request: "GET
>>>>>> /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1", host: "127.0.0.1"
>>>>>> 2010/08/10 17:38:25 [error] 28898#0: *1146 open()
>>>>>> "/usr/html/w00tw00t.at.ISC.SANS.DFind:)"
>>>>>> failed (2: No such file or directory), client: 127.0.0.1, server:
>>>>>> localhost, request: "GET
>>>>>> /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1", host: "127.0.0.1"
>>>>>> 2010/08/10 17:48:28 [error] 4386#0: *142 open()
>>>>>> "/usr/html/w00tw00t.at.ISC.SANS.DFind:)"
>>>>>> failed (2: No such file or directory), client: 127.0.0.1, server:
>>>>>> localhost, request: "GET
>>>>>> /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1", host: "127.0.0.1"
>>>>>> ***********************************************************
>>>>>>
>>>>>>
>>>>>> Here is the summary with our nginx version:
>>>>>>
>>>>>> *************************************************
>>>>>>
>>>>>> /usr/sbin/nginx -V
>>>>>> nginx version: nginx/0.7.67
>>>>>> built by gcc 4.3.2 (Debian 4.3.2-1.1)
>>>>>> TLS SNI support enabled
>>>>>> configure arguments: --prefix=/usr --conf-path=/etc/nginx/nginx.conf
>>>>>> --http-log-path=/var/log/nginx/access_log
>>>>>> --error-log-path=/var/log/nginx/error_log
>>>>>> --pid-path=/var/run/nginx.pid
>>>>>> --http-client-body-temp-path=/var/lib/nginx/body
>>>>>> --http-proxy-temp-path=/var/tmp/nginx/proxy
>>>>>> --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi
>>>>>> --with-md5-asm --with-md5=/usr/include --with-sha1-asm
>>>>>> --with-sha1=/usr/include
>>>>>> --with-http_realip_module --with-http_ssl_module
>>>>>> --with-http_stub_status_module
>>>>>> --with-http_ssl_module --with-http_flv_module
>>>>>> --with-http_gzip_static_module
>>>>>> --add-module=/root/substitutions4nginx
>>>>>>
>>>>>> *************************************************
>>>>>>
>>>>>> Thank you!
>>>>>>
>>>>>> Martronic SA
>>>>>> Martial Moret
>>>>>>
>>>>>>
>>>>>> Le 11.08.2010 08:41, Weibin Yao a écrit :
>>>>>>> Martronic SA at 2010-8-11 14:17 wrote:
>>>>>>>> I m' having problems with Substitutions NginxHttpSubsModule,
>>>>>>>> Everything seems to be well installed, but it doesn't
>>>>>>>> substitute anything in the html pages.
>>>>>>>>
>>>>>>>> Here is my config file:
>>>>>>>>
>>>>>>>> ********************************************
>>>>>>>> upstream hoplanet {
>>>>>>>> ip_hash;
>>>>>>>> server 94.23.227.152:9190 max_fails=6 fail_timeout=60s;
>>>>>>>> server 94.23.227.152:9191 max_fails=6 fail_timeout=60s;
>>>>>>>> server 94.23.227.152:9192 max_fails=6 fail_timeout=60s;
>>>>>>>> server 94.23.227.152:9193 max_fails=6 fail_timeout=60s;
>>>>>>>> }
>>>>>>>>
>>>>>>>> server {
>>>>>>>> listen 8201;
>>>>>>>> server_name www.hopla-net.com hopla-net.com;
>>>>>>>> access_log /home/awstats/hoplanet/access.log varnish;
>>>>>>>> access_log /dev/null;
>>>>>>>>
>>>>>>>> if ($host ~* ^hopla-net\.com$) {
>>>>>>>> rewrite ^(.*) http://www.hopla-net.com$1 permanent;
>>>>>>>> break;
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> rewrite ^/(.*)
>>>>>>>> /VirtualHostBase/http/www.hopla-net.com:80/hopla-net/VirtualHostRoot/$1
>>>>>>>> last;
>>>>>>>>
>>>>>>>> location / {
>>>>>>>> subs_filter_types text/html text/xml;
>>>>>>>> subs_filter chantent blabla;
>>>>>>>> proxy_pass http://hoplanet;
>>>>>>>> }
>>>>>>>>
>>>>>>>> }
>>>>>>>> ****************************************************
>>>>>>>>
>>>>>>>> I've desactivated Varnish and request directly to nginx, but
>>>>>>>> 'chantent' in my pages are not substitued.
>>>>>>>>
>>>>>>>> I wonder if substitution doesn't work on proxied data???
>>>>>>> Could you show me the debug.log? And what's your Nginx's version?
>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> Could you help me with that?
>>>>>>>>
>>>>>>>> Thank you very much
>>>>>>>>
>>>>>>>> Martronic SA
>>>>>>>> Martial Moret
>>>>>>>> ------------------------------------------------------------------------
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> nginx mailing list
>>>>>>>> nginx at nginx.org
>>>>>>>> http://nginx.org/mailman/listinfo/nginx
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> nginx mailing list
>>>>>> nginx at nginx.org
>>>>>> http://nginx.org/mailman/listinfo/nginx
>>>>>>
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> nginx mailing list
>>>> nginx at nginx.org
>>>> http://nginx.org/mailman/listinfo/nginx
>>>
>>>
> ------------------------------------------------------------------------
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx
>
--
Weibin Yao
More information about the nginx
mailing list