Welcome! Log In Create A New Profile

Advanced

Re: Загадочная проблема с обработкой регулярных выражений

М.А. Мохначевский
June 30, 2014 11:18PM
location ~ edit$ {
return 444;
}

вот и
2014/06/30 19:16:45 [debug] 39996#0: *3523 test location: ~ "edit$"
2014/06/30 19:16:45 [debug] 39996#0: *3523 using configuration "edit$"



01.07.2014 12:42 пользователь "Andrey Rogovsky" <a.rogovsky@gmail.com>
написал:

> Имею следующий конфиг nginx:
>
> -- начало --
>
> server {
> listen 80;
> server_name mydomain.com;
> #access_log /var/log/nginx/mydomain.com.access.log main;
> access_log off;
> error_log /var/log/nginx/mydomain.com.error.log crit;
> open_file_cache max=10000 inactive=120s;
> open_file_cache_valid 30s;
> open_file_cache_min_uses 2;
> open_file_cache_errors off;
>
> error_page 558 = @post;
>
> location / {
> limit_req zone=two burst=3 nodelay;
> proxy_pass http://backend;
> proxy_http_version 1.1;
> proxy_set_header Connection "";
> proxy_redirect off;
> #proxy_set_header Host $host;
> proxy_set_header Host 'mydomain.com';
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header UA $uaix;
> proxy_set_header MSK $mskix;
> proxy_set_header GEOIP_COUNTRY_CODE $geoip_country_code;
> proxy_set_header GEOIP_COUNTRY_CODE3 $geoip_country_code3;
> proxy_set_header GEOIP_COUNTRY_NAME $geoip_country_name;
> proxy_connect_timeout 10;
> proxy_send_timeout 10;
> proxy_read_timeout 10;
>
> if ($request_method = POST) {
> return 558;
> }
>
> }
> if ($uri ~ "^/script_var/(.+\.js)$") {
> set $jsname $1;
> }
> location ~* /script_var/.+\.(js)$ {
> root /var/www/mydomain.com;
> try_files /adv/$geoip_country_code/$jsname /adv/$jsname = 404;
> }
> location = /script.php {
> return 444;
> }
> location ~ edit$ {
> return 444;
> }
> location ~ playlist.php$ {
> proxy_pass http://backend;
> proxy_redirect off;
> proxy_http_version 1.1;
> proxy_set_header Connection "";
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header UA $uaix;
> proxy_set_header MSK $mskix;
> proxy_connect_timeout 60;
> proxy_send_timeout 60;
> proxy_read_timeout 60;
> }
> location ~ admin.php$ {
> allow 91.218.74.202;
> allow 213.186.118.138;
> allow 94.232.208.220;
> allow 176.9.35.227;
> allow 83.69.224.215;
> # deny all;
> proxy_pass http://backend;
> proxy_redirect off;
> proxy_http_version 1.1;
> proxy_set_header Connection "";
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header UA $uaix;
> proxy_set_header MSK $mskix;
> proxy_set_header GEOIP_COUNTRY_CODE $geoip_country_code;
> proxy_set_header GEOIP_COUNTRY_CODE3 $geoip_country_code3;
> proxy_set_header GEOIP_COUNTRY_NAME $geoip_country_name;
> proxy_connect_timeout 60;
> proxy_send_timeout 60;
> proxy_read_timeout 60;
> }
> location ~ ^/cgi-bin/.*\.cgi$ {
> proxy_pass http://backend;
> proxy_redirect off;
> }
> location ~ ^/adv/.*$ {
> deny all;
> }
> location ~
> ^/msqlmdmf/(.+\.(?:gif|jpe?g|png|ico|css|zip|tgz|gz|rar|bz2|tar|js))$ {
> alias /usr/share/phpmyadmin/$1;
> }
> # Static files location
> location ~*
> ^.+\.(swf|ver|ver|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$
> {
> valid_referers none blocked *.mydomain.com mydomain.com;
> if ($invalid_referer) {
> return 403;
> }
> root /var/www/mydomain.com;
> expires 10080m;
> }
> location /nginx_status {
> stub_status on;
> access_log off;
> allow 91.218.74.202;
> allow 213.186.118.138;
> allow 94.232.208.220;
> allow 212.113.52.4;
> deny all;
> }
>
>
> location @post
> {
> limit_req zone=two burst=1;
> set $limit_rate 128k;
> proxy_http_version 1.1;
> proxy_set_header Connection "";
> proxy_redirect off;
> #proxy_set_header Host $host;
> proxy_set_header Host 'mydomain.com';
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header UA $uaix;
> proxy_set_header MSK $mskix;
> proxy_set_header GEOIP_COUNTRY_CODE $geoip_country_code;
> proxy_set_header GEOIP_COUNTRY_CODE3 $geoip_country_code3;
> proxy_set_header GEOIP_COUNTRY_NAME $geoip_country_name;
> proxy_connect_timeout 10;
> proxy_send_timeout 10;
> proxy_read_timeout 10;
> proxy_pass http://backend;
> #return 444;
> }
>
> }
>
> -- конец --
>
> В общем все довольно стандартно.
>
>
> При этом запрос к сайту вида http://mydomain.com/actors/Bezrukov
> обрабатывается нормально:
>
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 http script var:
> "/actors/Bezrukov"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 http script regex:
> "^/script_var/(.+\.js)$"
> 2014/06/30 19:16:24 [notice] 39999#0: *3009 "^/script_var/(.+\.js)$" does
> not match "/actors/Bezrukov", client: 188.130.179.10, server: mydomain.com,
> request: "GET /actors/Bezrukov HTTP
> /1.1", host: "mydomain.com"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 http script if
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 http script if: false
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: "/"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: "script.php"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: "nginx_status"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: ~
> "/script_var/.+\.(js)$"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: ~ "edit$"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: ~ "playlist.php$"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: ~ "admin.php$"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: ~
> "^/cgi-bin/.*\.cgi$"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: ~ "^/adv/.*$"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: ~
> "^/msqlmdmf/(.+\.(?:gif|jpe?g|png|ico|css|zip|tgz|gz|rar|bz2|tar|js))$"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 test location: ~
> "^.+\.(swf|ver|ver|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$"
> 2014/06/30 19:16:24 [debug] 39999#0: *3009 using configuration "/"
>
> А вот с запросом вида http://mydomain.com/actors/Bargess-Meredit
> происходит вот такой глюк:
>
> 2014/06/30 19:16:45 [debug] 39996#0: *3523 http script var:
> "/actors/Bargess-Meredit"
> 2014/06/30 19:16:45 [debug] 39996#0: *3523 http script regex:
> "^/script_var/(.+\.js)$"
> 2014/06/30 19:16:45 [notice] 39996#0: *3523 "^/script_var/(.+\.js)$" does
> not match "/actors/Bargess-Meredit", client: 188.130.179.10, server:
> mydomain.com, request: "GET /actors/Bargess-Meredit HTTP/1.1", host: "
> mydomain.com"
> 2014/06/30 19:16:45 [debug] 39996#0: *3523 http script if
> 2014/06/30 19:16:45 [debug] 39996#0: *3523 http script if: false
> 2014/06/30 19:16:45 [debug] 39996#0: *3523 test location: "/"
> 2014/06/30 19:16:45 [debug] 39996#0: *3523 test location: "script.php"
> 2014/06/30 19:16:45 [debug] 39996#0: *3523 test location: "nginx_status"
> 2014/06/30 19:16:45 [debug] 39996#0: *3523 test location: ~
> "/script_var/.+\.(js)$"
> 2014/06/30 19:16:45 [debug] 39996#0: *3523 test location: ~ "edit$"
> 2014/06/30 19:16:45 [debug] 39996#0: *3523 using configuration "edit$"
>
>
> Почему /actors/Bargess-Meredit не обрабатывается корневым локейшеном?
>
> Причем я пробовал разные версии nginx - глюк повторяется что на текущем,
> что на свежескаченном с официального сайта. ОС Debian 6.
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Загадочная проблема с обработкой регулярных выражений

Andrey Rogovsky June 30, 2014 10:44PM

Re: Загадочная проблема с обработкой регулярных выражений

М.А. Мохначевский June 30, 2014 11:18PM

Re: Загадочная проблема с обработкой регулярных выражений

Andrey Rogovsky June 30, 2014 11:56PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 292
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