ПРОЕКТЫ 


  АРХИВ 


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: vhosting and map { }



On Wed, 21 Jun 2006, Igor Sysoev wrote:

On Wed, 21 Jun 2006, Dmitry Morozovsky wrote:

On Wed, 21 Jun 2006, Igor Sysoev wrote:

IS> Вот это вот
IS>         server_name     $http_host;
IS> я не заметил. Так нельзя.

Ага. то есть вообще server_name не указывать.

Можно так:
   server_name  _ ;

IS>
IS> >     location = / {
IS> >             root /www/$sroot/html;
IS> >             index index.html index.shtml index.htm index.php;
IS> >     }
IS> >        location / {
IS> >                proxy_pass              http://127.0.0.1;
IS> >        }
IS> >    }
IS> >
IS> > фигу - в качестве $document_root пишет root от первого из описанных
IS> > серверов.
IS> >
IS> > Где я не вижу очевидного?
IS>
IS> Вырожденный сервер нужно поместить в начало. Или во всех listen
IS> для него указать default.

Да, map принялся хвататься. Зато почему-то не раскрывается переменная:

root /$sroot/html;

directory index of "/$sroot/html/" is forbidden

Это багофига: если ни одни индекс не найден, то в сообщении $sroot
не раскрывается. Буду лечить.

Прилагаемый патч исправляет сообщение.


Игорь Сысоев
http://sysoev.ru
--- src/http/ngx_http_core_module.c     Mon May 29 19:21:59 2006
+++ src/http/ngx_http_core_module.c     Wed Jun 21 16:26:02 2006
@@ -519,6 +519,7 @@
 ngx_http_core_run_phases(ngx_http_request_t *r)
 {
     ngx_int_t                   rc;
+    ngx_str_t                   path;
     ngx_http_handler_pt        *h;
     ngx_http_core_loc_conf_t   *clcf;
     ngx_http_core_main_conf_t  *cmcf;
@@ -642,11 +643,10 @@
 
     if (r->uri.data[r->uri.len - 1] == '/' && !r->zero_in_uri) {
 
-        clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
-
-        ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
-                      "directory index of \"%V%V\" is forbidden",
-                      &clcf->root, &r->uri);
+        if (ngx_http_map_uri_to_path(r, &path, 0) != NULL) {
+            ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
+                          "directory index of \"%V\" is forbidden", &path);
+        }
 
         ngx_http_finalize_request(r, NGX_HTTP_FORBIDDEN);
         return;


 




Copyright © Lexa Software, 1996-2009.