allow - deny

Igor Sysoev is at rambler-co.ru
Fri Jul 8 09:28:39 MSD 2005


On Thu, 7 Jul 2005, Alex Kitschkiruk wrote:

> А у меня что-то непонятное происходит с правами доступа :(
> Например есть 2 виртуальных сервера.
> Первый хочется полностью по IP защитить, например только для всех
> адресов начиная с  55.55
> И выдает ошибку
>
> 2005/07/07 21:48:01 [error] 28393#0: *1 access forbidden by rule,
> client: 55.55.55.55, server: server.com, URL: "/", host:
> "server.com:8080"
>
> Только прямой вариант срабатывает, с полным адресом 55.55.55.55
> Варианты типа
>  allow 55.55.0/16;
> не спасли положение.

Как именно писались правила ? Я вижу в примере
     allow 55.55;
Он эвкивалентен allow  55.0.0.55;

Такие варианты
     allow 55.55.0.0/16;
     allow 55.55.0/16;
должны работать.

> Плюс к тому же происходит запрет на доступ к графическим файлам для
> другого сервера, определенным по правилу.
>  2005/07/07 21:53:01 [error] 28587#0: *3 open()
> "/srv/www/htdocs/web2/html/favicon.ico" failed (13: Permission
> denied), client: 55.55.55.55, server: virtualserver.com, URL:
> "/favicon.ico", host: "virtualserver.com:8080"
> правило срабатывает, проверил по логам:
>  55.55.55.55 - - [07/Jul/2005:21:53:01 +0200] "-" "GET /favicon.ico
> HTTP/1.1" 403 348 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU;
> rv:1.7.8) Gecko/20050511 Firefox/1.0.4" "-" "-"

Этот "Permission denied" - не результат действия директив allow/deny.
Это значит, что пользователь www не может открыть файл
/srv/www/htdocs/web2/html/favicon.ico

> И еще почему-то не срабатывает правило из примера, для директории.
> пропускает все на апач
>
> Это все мои ошибки?
>
> Вот конфиг:
>
> user  www www;
> worker_processes  3;
> events {
>    connections  2000;
>    use epoll;
> }
>
> http {
>    include       conf/mime.types;
>    default_type  application/octet-stream;
>
> [SKIP]
>
> # confixx
>        server {
>        listen  8080;
> 	      server_name server.com;
>        access_log  /usr/local/nginx/logs/access_confixx.log  main;
>
>        location / {
> 	    proxy_pass         http://x.x.x.x:80/;
> 	    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_header_buffer_size   4k;
> 	    proxy_buffers              4 32k;
> 	    proxy_busy_buffers_size    64k;
> 	    proxy_temp_file_write_size 64k;
>
> 	    allow 55.55;
> 	    deny  all;
>        }
>
> 	location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js)$ {
> 	    root   /srv/www/confixx/html;
> 	    access_log   off;
> 	    expires      30d;
> 	}
>
>        location ~ \.ht {
>            deny  all;
>        }
>    }
>
> # web2
>    server {
>        listen  8080;
>        	server_name virtualserver.com;
>        access_log  /usr/local/nginx/logs/access_web2.log  main;
>        location / {
> 	    proxy_pass         http://x.x.x.x:80/;
> 	    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_header_buffer_size   4k;
> 	    proxy_buffers              4 32k;
> 	    proxy_busy_buffers_size    64k;
> 	    proxy_temp_file_write_size 64k;
>        }
>        location /files/ {
>            valid_referers  none  server_names  *.virtualserver.com/;
>            if ($invalid_referer) {
>                return   403;     }
> 	    root   /srv/www/htdocs/web2/html/files;
> 	    autoindex    on;
> 	    access_log   /usr/local/nginx/logs/access_web2_files.log   download;
> 	}
> 	location ~* ^.+\.(jpg|jpeg|gif|png|ico|mpg)$ {
> 	    root   /srv/www/htdocs/web2/html;
> 	    access_log   off;
> 	    expires      30d;
> 	}
>        location ~ \.ht {
>            deny  all;
>        }
>    }


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list