Пытаюсь отдать файл из своего обработчика, но, вероятно, что-то делаю неправильно; от сервера приходит только
HTTP/1.x 200 OK
Не подскажите куда копать?
Разобрался, нужно было вот так:
/////////////////////////////////////////////////////
const char* path = "/home/sergey/img.gif";
struct stat file_info;
stat(path, &file_info);
r->headers_out.status = NGX_HTTP_OK;
r->headers_out.content_type.len = strlen("image/gif");
r->headers_out.content_type.data = "" *)"image/gif";
r->headers_out.content_length_n = file_info.st_size;
ngx_http_send_header(r);
ngx_buf_t *b = static_cast<ngx_buf_t*>(ngx_create_temp_buf(r->pool, file_info.st_size));
ngx_file_t file;
file.fd = ngx_open_file(path, NGX_FILE_RDONLY, NGX_FILE_OPEN, 0);
ngx_read_file(&file, b->pos, file_info.st_size, 0);
ngx_close_file(file.fd);
b->last = b->pos + file_info.st_size;
b->memory = 1;
b->last_buf = 1;
ngx_chain_t out;
out.buf = b;
out.next = NULL;
return ngx_http_output_filter(r, &out);
/////////////////////////////////////////////////////
--
С уважением,
Сергей Самохин.