Re: nginx: отображение динамически сформированной картинки
Sergey Shepelev
temotor на gmail.com
Пн Фев 28 19:49:06 MSK 2011
2011/2/28 belbek <nginx-forum at nginx.us>:
> файл, генерирующий картинку,
> компилирую как test.gif
> вывод в браузер:
> printf("Content-Type: image/gif\n\n");
> //используется библиотека gdchart
>
> out_graph( 250, 400, stdout, GDC_3DBAR, 6, t, 2, a, b
> );
> return 0;
>
> apache отображает картинку
> http://localhost/cgi-bin/test.gif без проблем
> заголовки(firefox):
> запрос:
> Host localhost
> User-Agent Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.12)
> Gecko/20101027 Ubuntu/10.04 (lucid) Firefox/3.6.12
> Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
> Accept-Language ru,en-us;q=0.7,en;q=0.3
> Accept-Encoding gzip,deflate
> Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
> Keep-Alive 115
> Connection keep-alive
> Cache-Control max-age=0
>
> ответ:
> Date Mon, 28 Feb 2011 16:28:49 GMT
> Server Apache/2.2.14 (Ubuntu)
> Keep-Alive timeout=15, max=100
> Connection Keep-Alive
> Transfer-Encoding chunked
> Content-Type image/gif
>
>
> nginx картинку http://localhost/test.gif не
> отображает:
> Изображение «http://localhost/test.gif» не может
> быть показано, так как содержит ошибки.
>
> заголовки:
> запрос:
> Host localhost
> User-Agent Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.12)
> Gecko/20101027 Ubuntu/10.04 (lucid) Firefox/3.6.12
> Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
> Accept-Language ru,en-us;q=0.7,en;q=0.3
> Accept-Encoding gzip,deflate
> Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
> Keep-Alive 115
> Connection keep-alive
> Range bytes=512-
> If-Range Mon, 28 Feb 2011 16:13:41 GMT
> Cache-Control max-age=0
>
> ответ:
> Server nginx/0.8.54
> Date Mon, 28 Feb 2011 16:33:29 GMT
> Content-Length 85947
> Last-Modified Mon, 28 Feb 2011 16:13:41 GMT
> Accept-Ranges bytes
>
> подскажите где искать, почему
> передаются разные заголовки запроса
> одним и тем же браузером, как исправить?
> Спасибо.
>
Проблема в том, что nginx не выполняет CGI и отдаёт браузеру бинарник.
Заголовки одинаковые, только во втором случае есть If-Range, потому
что у браузера есть копия картинки в кеше и он просит в случае
обновления прислать ему только diff, а не всю целиком.
Подробная информация о списке рассылки nginx-ru