Запрос:<br><a href="http://myhost/app1/request1.php">http://myhost/app1/request1.php</a><br><br>Конфиг (с рудиментами, но рабочий):<br>pid /var/run/nginx.pid;<br>events {worker_connections 4000;}<br>user nobody nobody;<br>
error_log /var/log/nginx/error.log error;<br>http {<br>resolver 10.192.168.16;<br>root /var/www/nginx/html;<br>log_format devel '$msec|$request_time|$bytes_sent|$remote_addr|$status|$time_local|'<br>'$request_method http://$http_host:$server_port$request_uri $server_protocol|$http_referer|$http_user_agent|$ext_point|$group';<br>
access_log /var/log/nginx/access.log devel;<br>map "${ext_host}/${ext_point}" $group {<br> #include /etc/nginx/maps/group.txt;<br> myhost/default public;<br>}<br>map "${ext_host}/${ext_point}" $group1 {<br>
#include /etc/nginx/maps/group.txt;<br> myhost/default public;<br>}<br>server {<br>set $ext_host $http_host;<br>if ( $http_host ~* ^([^:]+)\:.*$ ) { set $ext_host $1; }<br>set $uri_x $request_uri;<br>if ($uri_x ~ ^/+(.*)$) { set $ext_point default; set $request_x $1; }<br>
if ($uri_x ~ ^/+([^/]+)/+(.*)$) { set $ext_point $1; set $request_x $2; }<br>set $tmp $group:$uri_x; # doesn't work<br>#set $tmp $group1:$uri_x; # does work<br>if ($tmp ~* ^:/+(.*)$ ) { set $ext_point default; set $request_x $1; }<br>
if ($group = "") { set $group "forbid"; }<br>if ($int_uri = "") { set $int_uri "localhost:8000"; }<br>if ($group = public) { set $proxy_url http://$int_uri/$request_x; break; }<br>if ($group = redirect) { rewrite .* http://$int_uri/$request_x permanent; break; }<br>
if ($group = forbid) { return 403; }<br>return 403;<br>location / { proxy_pass $proxy_url; }<br>}<br>server {<br> access_log off;<br> listen 8000;<br> location / {<br> root /var/www/html;<br>
}<br>}<br>}<br><br>Лог:<br>1248425804|0|322|10.192.168.141|404|2009.07.24 12:56:44|GET <a href="http://myhost:80/app1/request1.php">http://myhost:80/app1/request1.php</a> HTTP/1.1|-|Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)|default|public<br>
1248425818|0|322|10.192.168.141|403|2009.07.24 12:56:58|GET <a href="http://myhost:80/app1/request1.php">http://myhost:80/app1/request1.php</a> HTTP/1.1|-|Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)|default|forbid<br>
<br>Первая строка - если set $tmp $group1:$uri_x;<br>вторая - если set $tmp $group:$uri_x;.<br><br><div class="gmail_quote">24 июля 2009 г. 12:08 пользователь Kirill A. Korinskiy <span dir="ltr"><<a href="mailto:catap%2Bnginx@catap.ru">catap+nginx@catap.ru</a>></span> написал:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">At Fri, 24 Jul 2009 11:30:48 +0400,<br>
<div class="im">Vladimir Latyshev <<a href="mailto:latysheff@gmail.com">latysheff@gmail.com</a>> wrote:<br>
><br>
</div><div class="im">> Я уже приводил его в ветке чуть выше.<br>
> Суть в том, что обрабатываются урлы вида <a href="http://host1/app1/request1.php" target="_blank">http://host1/app1/request1.php</a>. В map ищется сначала группа для host1/app1, и если не находится, то для host1/default.<br>
><br>
> Можно в качестве примера вот так:<br>
> map "${ext_host}/${ext_point}" $group {<br>
> host1/app2 public;<br>
> host1/default public;<br>
> host2/app1 public;<br>
> }<br>
><br>
<br>
</div>Странно то, что у меня не кешируется map.<br>
<br>
Можете сделать пример конфига в котором с моим патчем не работает<br>
подобное?<br>
<br>
Ну и примеры запросов на которых вы получаете не то что хотите :)<br>
<font color="#888888"><br>
--<br>
wbr, Kirill<br>
<br>
</font></blockquote></div><br>