ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: снова valid_referers & ssl



On Thu, 10 Mar 2005, Artem Danilenko wrote:

Проблема в следущем, есть два сервер оба отдают статику(один еще
динамику через прокси) у обих стоит проверка valid_referers в обоих
случаях *.test.com/, на сервер который отдает только статику если
рефер стоит просто домен test.com то выдается 403 ошибка, сначала я
подумал просто нету такова имени в server_name в описании сервер, но
потом заметил что если стоит рефер www.test.com то все нормально,
конфигурации серверов и куски лога приведены ниже...

В первом сервере test.com не является правильным реферером, так как
его нет в server_name и он не попадает под *.test.com/.

Нужно так:
    valid_referers  none  test.com/  *.test.com/;
server_names в данном случае не нужен, так как download.test.com попадает
под *.test.com/.

сегодня поробовал использовать в nginx, ssl на тестовом сервере и
заметил что первый запрос обычно выдает ошибку 400

10.10.4.64 - - [10/Mar/2005:15:27:54 +0500] "" 400 0 "-" "-"
10.10.4.64 - - [10/Mar/2005:15:28:05 +0500] "GET / HTTP/1.1" 200 480 "-" 
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; SV1; .NET CLR 1.1.432
2)"

При получении тестового сертификата MSIE закрывает соединение и спрашивает
у пользователя подтверждение на приём сертификата. Поэтому и 400.
А Мозилла, например, соединение не закрывает и после получения подтвержения
работает по этому же соединению.

первый сервер:
   server {
       listen  80;
       server_name   download.test.com;

       location / {

       valid_referers  none  server_names  *.test.com/;
       if ($invalid_referer) {
               return   403;
       }

       root /www/download.test.com;
       access_log logs/static/test.log download;
       expires      30d;
       }
   }


второй сервер
   server {
       listen  80;
       server_name   test.com www.test.com;

       access_log  logs/test.log;

   location / {
       proxy_pass  http://127.0.0.1/;
       client_max_body_size       80m;
       client_body_buffer_size    128k;
       proxy_connect_timeout      90;
       proxy_send_timeout         90;
       proxy_read_timeout         9m;
       proxy_preserve_host        on;
       proxy_set_x_real_ip        on;
       proxy_add_x_forwarded_for  on;
       proxy_header_buffer_size   4k;
       proxy_buffers              4 32k;
       proxy_busy_buffers_size    64k;
       proxy_temp_file_write_size 64k;
       proxy_temp_path            /tmp/nginx;
     }
       location ~* 
^.+\.(jpg|jpeg|gif|css|htm|html|zip|rar|swf|txt|exe|mpg|mp3|ico|avi|png|js|pdf)$
 {

       valid_referers  none  server_names  *.test.com/;
       if ($invalid_referer) {
               return   403;
       }

       root /www/test.com;
       access_log logs/test-static.log download;
       expires      30d;
       }
   }


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




 




Copyright © Lexa Software, 1996-2009.