Welcome! Log In Create A New Profile

Advanced

Re: Проксирование изображений через Nginx в Flash.

Валентин Бартенев
January 19, 2013 06:10PM
On Saturday 19 January 2013 16:02:01 somebi wrote:
> Как вы тогда объясните то, что через google chrome, без флеша картинки
> проксируются без проблем?

В HTTP/1.x запросе помимо строки запроса и тела бывают ещё заголовки. Об этом вы
можете узнать, например, из RFC 2616 ( http://tools.ietf.org/html/rfc2616 ).

В частности, когда вы открываете картинку в хроме напрямую, то такой заголовок
как "Referer" он обычно не посылает.

Именно на этот заголовок указанный в логе сервер (на который вы проксируете
запрос) реагирует таким вот образом (отдает 503 вместо картинки), в чем не
трудно убедиться.

Простой запрос:

% telnet ns223506.ovh.net 80
Trying 46.105.113.99...
Connected to ns223506.ovh.net.
Escape character is '^]'.
GET /rozne/001017635f42c3ca1bac9f0e7e2d4ac7/wallpaper-2584886.jpg HTTP/1.0
Host: ns223506.ovh.net

HTTP/1.1 200 OK
Server: nginx/1.1.1
Date: Sat, 19 Jan 2013 22:18:32 GMT
Content-Type: image/jpeg
Content-Length: 782444
Last-Modified: Sat, 12 Jan 2013 15:34:54 GMT
Connection: close
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Accept-Ranges: bytes

[...]

И с "Referer" в запросе:

% telnet ns223506.ovh.net 80
Trying 46.105.113.99...
Connected to ns223506.ovh.net.
Escape character is '^]'.
GET /rozne/001017635f42c3ca1bac9f0e7e2d4ac7/wallpaper-2584886.jpg HTTP/1.0
Host: ns223506.ovh.net
Referer: http://example.com/

HTTP/1.1 503 Service Temporarily Unavailable
Server: nginx/1.1.1
Date: Sat, 19 Jan 2013 22:18:57 GMT
Content-Type: text/html
Content-Length: 212
Connection: close

<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body bgcolor="white">
<center><h1>503 Service Temporarily Unavailable</h1></center>
<hr><center>nginx/1.1.1</center>
</body>
</html>
Connection closed by foreign host.


Возможно, что не на любое значение "Referer" такая реакция. Не исключено,
что такую защиту сделали специально.

В приведенном же вами логе видно, что на nginx пришел запрос с заголовком
"Referer", который nginx честно передал дальше и получил 503 в ответ.

Указание nginx не передавать заголовок "Referer":

proxy_set_header referer "";

решило бы вашу проблему.

Документация:
http://nginx.org/r/proxy_set_header/ru


>
> В общем я плюнул на эту затею и написал свой прокси сервер. Теперь все
> отлично работает. Так что разбирайтесь там, а то теряете доверие... Мне
> сидеть и разбираться по 5 часов, в чем же причина как-то еще раз не
> хочеться...
>

--
Валентин Бартенев
http://nginx.com/support.html
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Проксирование изображений через Nginx в Flash.

somebi January 18, 2013 04:36AM

Re: Проксирование изображений через Nginx в Flash.

Валентин Бартенев January 18, 2013 02:14PM

Re: Проксирование изображений через Nginx в Flash.

somebi January 19, 2013 07:02AM

Re: Проксирование изображений через Nginx в Flash.

Валентин Бартенев January 19, 2013 06:10PM

Re: Проксирование изображений через Nginx в Flash.

somebi January 21, 2013 01:14PM

Re: Проксирование изображений через Nginx в Flash.

somebi January 21, 2013 01:17PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 164
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