Re: Проблема с фильтрацией по запросам

Alex Gakel crazysqwad at gmail.com
Fri Jun 8 16:46:15 MSD 2007


Спасибо так работает:

      server {
        listen       89.111.180.163:80;
        server_name  foto.rock-zone.ru;

        #charset koi8-r;

        access_log  /home/savel/home/savel/foto.rock-zone.ru/logs/access_log
combined;

        location = / {
            if ($request_method ~ "^(POST|HEAD)$") {
                return 403;
            }

            if ($args ~ "^qwertyqwertyqwerty") {
                return 403;
            }
            proxy_pass         http://foto.rock-zone.ru:7777;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            client_max_body_size       10m;
            client_body_buffer_size    128k;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
        }

        location / {
            proxy_pass         http://foto.rock-zone.ru:7777;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            client_max_body_size       10m;
            client_body_buffer_size    128k;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
        }

        # Static files location
        location ~*
^.+\.(jpg|jpeg|gif|png|ico|mp3|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|dat|avi|ppt|txt|tar|mid|midi|wav|bmp|rtf|wmv|mpeg|mpg|tbz|js)$
{
            root   /home/savel/home/savel/foto.rock-zone.ru/docs;
        }

    }




2007/6/8, Igor Sysoev <is at rambler-co.ru>:
>
> On Fri, Jun 08, 2007 at 03:50:32PM +0400, Alex Gakel wrote:
>
> > Спасибо. Только 1 проблема такое правило
> >
> >             if ($request_method ~ "^(POST|HEAD)$") {
> >                 return 403;
> >             }
> > Рубит все запросы POST и HEAD и таким образом POST запросы скриптов не
> будут
> > исполняться. Надо зарубить только POST и HEAD идущие на корень.
>
> Тогда нужно продублировать
>
> location = / {
>
> location / {
>
> и в первом указать проверки.
>
> > P.S. Заранее спасибо за помощь
> >
> > 2007/6/8, Igor Sysoev <is at rambler-co.ru>:
> > >
> > >On Fri, Jun 08, 2007 at 02:04:47PM +0400, SaVeL wrote:
> > >
> > >> Необходимо сделать фильтрацию по 3-м запросам:
> > >> 1. POST /
> > >> 2. HEAD /
> > >> 3. GET /?qwertyqwertyqwerty
> > >>
> > >> Необходимо на такие запросы выдавать ошибку 403. без проксирования на
> > >> Apache.
> > >>
> > >> Прописыванием if добиться не удается. Оч. нужна помощь.
> > >>
> > >> Конфиг такой:
> > >>
> > >> server {
> > >>        listen       89.111.180.163:80 <http://89.111.180.163:80>;
> > >>        server_name  foto.rock-zone.ru <http://foto.rock-zone.ru>;
> > >>
> > >>        #charset koi8-r;
> > >>
> > >>        access_log  /home/savel/home/savel/foto
> > >> .rock-zone.ru/logs/access_log <http://zone.ru/logs/access_log
> > >>  combined;
> > >>
> > >
> > >         location = /403.html {
> > >             root   ...;
> > >         }
> > >
> > >>        location / {
> > >
> > >             error_page  403  /403.html;
> > >
> > >             if ($request_method ~ "^(POST|HEAD)$") {
> > >                 return 403;
> > >             }
> > >
> > >             if ($args ~ "^qwertyqwertyqwerty") {
> > >                 return 403;
> > >             }
> > >
> > >>
> > >>            proxy_pass         http://foto.rock-zone.ru:7777;
> > >>            proxy_redirect     off;
> > >>
> > >>
> > >>
> > >>            proxy_set_header   Host             $host;
> > >>            proxy_set_header   X-Real-IP        $remote_addr;
> > >>            proxy_set_header
> > >X-Forwarded-For  $proxy_add_x_forwarded_for;
> > >>
> > >>            client_max_body_size       10m;
> > >>            client_body_buffer_size    128k;
> > >>
> > >>            proxy_connect_timeout      90;
> > >>            proxy_send_timeout         90;
> > >>            proxy_read_timeout         90;
> > >>
> > >>            proxy_buffer_size          4k;
> > >>            proxy_buffers              4 32k;
> > >>            proxy_busy_buffers_size    64k;
> > >>            proxy_temp_file_write_size 64k;
> > >>        }
> > >>
> > >>        # Static files location
> > >>        location ~*
> > >>
> >
> >^.+\.(jpg|jpeg|gif|png|ico|mp3|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|dat|avi|ppt|txt|tar|mid|midi|wav|bmp|rtf|wmv|mpeg|mpg|tbz|js)$
> > >> {
> > >>            root   /home/savel/home/savel/foto.rock- zone.ru/docs
> > >> <http://zone.ru/docs>;
> > >>        }
> > >>
> > >>    }
> > >>
> > >
> > >--
> > >Игорь Сысоев
> > >http://sysoev.ru
> > >
> > >
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070608/12081c22/attachment.html>


More information about the nginx-ru mailing list