Welcome! Log In Create A New Profile

Advanced

nginx подменяет заголовок Location: в проксированом ответе

Vladimir Rusinov
February 26, 2010 06:06AM
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Приветствую!

Либо это фича, либо баг - не понимаю.

Есть конфиг примерно такого вида:

<...>
proxy_set_header Host $host:$proxy_port;
server_name_in_redirect off;
<...>

upstream wrike {
ip_hash;
server 10.10.0.31:80 max_fails=3 fail_timeout=120s;
server 10.10.0.18:80 max_fails=3 fail_timeout=120s;
}
<...>

server {
listen 10.10.0.30:80;
server_name www.wrike.com;
server_name 10.10.0.30;

root /bla-bla-bla/
location / {
proxy_pass http://wrike;
}
<...>
}
<...>

Бакент поддерживает oauth: принимает post запрос (c логином-паролем) и
отдает редирект с key. Вот как это работает без проксирования через nginx:

$ wget --post-file post.txt http://10.10.0.31/rest/auth/authorize
- --server-response -O -
- --2010-02-26 02:55:42-- http://10.10.0.31/rest/auth/authorize
Connecting to 10.10.0.31:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1
Set-Cookie: <...>
P3P: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID ADMa OUR NOR STA"
Location: http://wrikerobot.appspot.com/callback.html?oauth_token=XXX
Content-Type: text/html;charset=UTF-8
Content-Length: 915
Date: Fri, 26 Feb 2010 10:55:42 GMT
Connection: keep-alive
Location: http://wrikerobot.appspot.com/callback.html?oauth_token=XXX
[following]
- --2010-02-26 02:55:42--
http://wrikerobot.appspot.com/callback.html?oauth_token=XXX
Resolving wrikerobot.appspot.com... 74.125.127.141
Connecting to wrikerobot.appspot.com|74.125.127.141|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.0 200 OK
<дальше уже ответ стороннего сервера>

Вот как работает это через nginx с указаной выше конфигурацией:

$ wget --post-file post.txt http://10.10.0.30/rest/auth/authorize
- --server-response -O -
- --2010-02-26 02:36:41-- http://10.10.0.30/rest/auth/authorize
Connecting to 10.10.0.30:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Fri, 26 Feb 2010 10:36:41 GMT
Content-Type: text/html;charset=UTF-8
Connection: keep-alive
Set-Cookie: <...>
P3P: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID ADMa OUR NOR STA"
Location: robot.appspot.com/callback.html?oauth_token=XXX
Content-Length: 915
Location: robot.appspot.com/callback.html?oauth_token=XXX [following]
- --2010-02-26 02:36:41--
http://10.10.0.30/rest/auth/robot.appspot.com/callback.html?oauth_token=XXX
Reusing existing connection to 10.10.0.30:80.
HTTP request sent, awaiting response...
HTTP/1.1 404 Not Found

Как видно, вместо Location: http://wrikerobot.appspot.com/ отдается
Location: robot.appspot.com.

С помощью шестого чувства попробовал поменять upstream wrike и
proxy_pass http://wrike на upstream jboss и proxy_pass http://jboss.

После этого location стал отдаваться правильно.

nginx 0.7.63

- --
Vladimir Rusinov

Twitter: http://twitter.com/vrusinov (crossposts only)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iJwEAQECAAYFAkuHqq0ACgkQSdCkhAKeJ0wN+AQA0nMT4Bsr6bll4XvLjOFsjCYu
PBu/dtjYHYyT4A6g9ITwrHhbf6zCf5RJjx2M7cvOFD8m25hWBXISPg7DVldT9y7o
NOgdPzwpuiYxNckLZuVr/nNta3R5m5Mhlcu6hQOZ62LXnLEy65bY4i0ymysLJPIs
4fKjIlhssCoTuZMxhX4=
=j9CR
-----END PGP SIGNATURE-----


_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

nginx подменяет заголовок Location: в проксированом ответе

Vladimir Rusinov February 26, 2010 06:06AM

Re: nginx подменяет заголовок Location: в проксированом ответе

Maxim Dounin February 26, 2010 10:40AM

Re: nginx подменяет заголовок Location: в проксированом ответе

bas February 17, 2011 03:24AM

Re: nginx подменяет заголовок Location: в проксированом ответе

Igor Sysoev February 17, 2011 06:58AM

Re: nginx подменяет заголовок Location: в проксированом ответе

Maxim Dounin February 17, 2011 07:24AM

Re: nginx подменяет заголовок Location: в проксированом ответе

Igor Sysoev February 17, 2011 08:30AM

Re: nginx подменяет заголовок Location: в проксированом ответе

bas February 17, 2011 08:18AM

Re: nginx подменяет заголовок Location: в проксированом ответе

Igor Sysoev February 17, 2011 08:38AM

Re: nginx подменяет заголовок Location: в проксированом ответе

Alex Vorona February 17, 2011 09:00AM

Re: nginx подменяет заголовок Location: в проксированом ответе

Igor Sysoev February 17, 2011 09:08AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 129
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready