Михаил,<div><br></div><div>обратите внимание:</div><div><br></div><div>request: "GET <font size="4"><b>/</b></font><a href="http://ishop.top-kniga.ru/data/m_ishc/1084/1084845.jpg" target="_blank">ishop.top-kniga.ru/data/m_ishc/1084/1084845.jpg</a></div>
<div><br></div><div>Кажется, регулярка не сработала правильно, как то задумывалось.</div><div><br><div class="gmail_quote">17 января 2013 г., 18:21 пользователь Михаил Монашёв <span dir="ltr"><<a href="mailto:postmaster@softsearch.ru" target="_blank">postmaster@softsearch.ru</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Здравствуйте.<br>
<br>
Имеется вот такой конфиг:<br>
<br>
                location ~* "^/(?<phost>[a-z0-9\-\.]+)/(?<puri>.*)" {<br>
                        proxy_pass              http://$phost:80/$puri;<br>
                        proxy_set_header        Host    $1;<br>
                        proxy_set_header        Referer "http://$phost/";<br>
                        proxy_set_header        X-Real-IP       "";<br>
                        proxy_set_header        Cookie          "";<br>
                        proxy_ignore_headers    X-Accel-Redirect X-Accel-Expires X-Accel-Limit-Rate X-Accel-Buffering X-Accel-Charset Expires Cache-Control Set-Cookie;<br>
<br>
                        proxy_hide_header       Location;<br>
                        proxy_hide_header       Set-Cookie;<br>
                        proxy_hide_header       WWW-Authenticate;<br>
<br>
                        proxy_intercept_errors  on;<br>
                        error_page              301 302 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 422 423 424 425 426 449 500 501 502 503 504 505 506 507 509 510 = @zero;<br>
<br>
                        proxy_temp_path         /optcache3/proxy-tmp;<br>
                        proxy_cache_key         "$phost/$puri";<br>
                        proxy_cache             optcache3;<br>
<br>
                        image_filter            test;<br>
                        image_filter_buffer     10M;<br>
<br>
                }<br>
<br>
                location / {<br>
                        return  403;<br>
                }<br>
<br>
                location @zero {<br>
                        return  204;<br>
                }<br>
<br>
А в логе вот такая ошибка:<br>
2013/01/17 17:47:58 [error] 3963#0: *8162 kevent() reported that connect() failed (60: Operation timed out) while connecting to upstream, client: 80.239.243.119, server: <a href="http://i99.beon.ru" target="_blank">i99.beon.ru</a>, request: "GET /<a href="http://ishop.top-kniga.ru/data/m_ishc/1084/1084845.jpg" target="_blank">ishop.top-kniga.ru/data/m_ishc/1084/1084845.jpg</a> HTTP/1.1", upstream: "<a href="http://91.206.106.43:80/data/m_ishc/1084/1084845.jpg" target="_blank">http://91.206.106.43:80/data/m_ishc/1084/1084845.jpg</a>", host: "<a href="http://i99.beon.ru" target="_blank">i99.beon.ru</a>", referrer: "<a href="http://tanitakokyto.beon.ru/24898-872-tema-dlja-raznyh-anket.zhtml" target="_blank">http://tanitakokyto.beon.ru/24898-872-tema-dlja-raznyh-anket.zhtml</a>"<br>

<br>
По идее nginx должен был отрезолвить <a href="http://ishop.top-kniga.ru" target="_blank">ishop.top-kniga.ru</a> , соединится<br>
с полученным ip и запросить <a href="http://ishop.top-kniga.ru/data/m_ishc/1084/1084845.jpg" target="_blank">http://ishop.top-kniga.ru/data/m_ishc/1084/1084845.jpg</a><br>
<br>
Текст  ошибки меня удивил. Его я его понял так: не удалось соединиться<br>
с   ip,   в   который  отрезолвился  <a href="http://ishop.top-kniga.ru" target="_blank">ishop.top-kniga.ru</a>.  Но  при  это<br>
показываются странные данные про апстрим:<br>
upstream: "<a href="http://91.206.106.43:80/data/m_ishc/1084/1084845.jpg" target="_blank">http://91.206.106.43:80/data/m_ishc/1084/1084845.jpg</a>"<br>
Хотя мне видится, что он должен быть таким:<br>
<a href="http://ishop.top-kniga.ru/data/m_ishc/1084/1084845.jpg" target="_blank">http://ishop.top-kniga.ru/data/m_ishc/1084/1084845.jpg</a> , ведь в<br>
конфиге написано:<br>
proxy_pass              http://$phost:80/$puri;<br>
, где $phost - это домен, а не ip.<br>
<br>
Как получилось <a href="http://91.206.106.43:80/data/m_ishc/1084/1084845.jpg" target="_blank">http://91.206.106.43:80/data/m_ishc/1084/1084845.jpg</a><br>
понятно. Вопрос в том, правильно ли это?<br>
<br>
<br>
nginx version: nginx/1.3.11<br>
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf<br>
--sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --with-debug --with-file-aio<br>
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp<br>
--http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --with-http_image_filter_module<br>
--with-http_stub_status_module --with-pcre<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
С уважением,<br>
 Михаил                          mailto:<a href="mailto:postmaster@softsearch.ru">postmaster@softsearch.ru</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Панфилов Михаил<div>
<br></div>
</div>