<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.18.1">
</HEAD>
<BODY>
В Сбт, 06/12/2008 в 20:42 +0300, Igor Sysoev пишет:
<BLOCKQUOTE TYPE=CITE>
<PRE>
On Sat, Dec 06, 2008 at 07:30:50PM +0200, Bogun Dmitriy wrote:
> Сегодня столкнулся со странным с моей точки зрения поведением nginx'а.
> Имеется вхост вот такого вида.
>
>
> upstream byaka {
> server 127.0.1.25;
> server 127.0.128.25 backup;
> }
> server {
> listen 213.186.117.227;
>
> server_name byaka.dom1.net.ua;
> server_name .byaka.com.ua;
>
> access_log /var/log/nginx/byaka-access.log main;
> error_log /var/log/nginx/byaka-error.log info;
>
> location / {
> proxy_pass <A HREF="http://byaka">http://byaka</A>;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> ??? #proxy_redirect off;
</PRE>
</BLOCKQUOTE>
Его тут изначально не было, это уже потом, когда я заподозрил в проблемах с переадресацией nginx, я вспомнил про эту директиву и добавил ее в конфиг.
<BLOCKQUOTE TYPE=CITE>
<PRE>
> }
> }
>
>
> До добавления директивы proxy_redirect off, возвращаемый из upstream'а
> заголовок Location превращался из "byaka.com.ua/some/path" в
> ".com/ua/some/path".
>
> Это задуманное поведение или все же нет?
Да. Из "<A HREF="http://byaka.com.ua/some/path">http://byaka.com.ua/some/path</A>" вырезается "<A HREF="http://byaka">http://byaka</A>" (из proxy_pass)
и вместо неё ничего не подставляется (так как у proxy_pass нет URI-part).
Можно переименовать
- upstream byaka {
+ upstream byaka_upstream {
</PRE>
</BLOCKQUOTE>
<PRE>
ясно. Спасибо.
</PRE>
</BODY>
</HTML>