On Tue, Mar 19, 2013 at 02:55:21PM +0400, Maxim Dounin wrote: > Hello! > > Так, насколько я понимаю, будет мусор на выходе - сначала ответ > 302 без тела, а потом ответ на исходный запрос. Посмотрите > telnet'ом на ответ.
Да :-). Я это предположил, но проверить забыл. Какие-то символы 'ba' в ответе странные: $ telnet zbox-srv.kvm 80 Trying 192.168.77.26... Connected to zbox-srv.kvm. Escape character is '^]'. GET /zboxweb/user/admin HTTP/1.1 Host: zbox-srv.kvm HTTP/1.1 307 Temporary Redirect Server: nginx/1.2.1 Date: Tue, 19 Mar 2013 11:24:40 GMT Transfer-Encoding: chunked Connection: keep-alive Location: http://$host/zboxweb ba <html> <head><title>307 Temporary Redirect</title></head> <body bgcolor="white"> <center><h1>307 Temporary Redirect</h1></center> <hr><center>nginx/1.2.1</center> </body> </html> 0 quit <html> <head><title>400 Bad Request</title></head> <body bgcolor="white"> <center><h1>400 Bad Request</h1></center> <hr><center>nginx/1.2.1</center> </body> </html> Connection closed by foreign host. > Для access-фазы проще всего добавить заголовок location, и вернуть > NGX_HTTP_TEMPORARY_REDIRECT (BTW, хочется возвращать именно 307?). > Собственно, так же, как и для content-фазы, ибо там есть > специальная обработка NGX_HTTP_*. Как-то так (выдержка из > ngx_http_static_module.c): > > ngx_http_clear_location(r); > > r->headers_out.location = ngx_palloc(r->pool, sizeof(ngx_table_elt_t)); > if (r->headers_out.location == NULL) { > return NGX_ERROR; > } > > r->headers_out.location->value.len = len; > r->headers_out.location->value.data = location; > > return NGX_HTTP_TEMPORARY_REDIRECT; Т.е. устанавливать r->headers_out.status и делать ngx_http_send_header(r) необязательно? _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru