Hello! On Tue, Jun 20, 2017 at 02:07:38AM +0800, 胡聪 (hucc) wrote:
> Hi, > > On Tuesday, Jun 20, 2017 1:21 AM +0300, Maxim Dounin wrote: > > >On Tue, Jun 20, 2017 at 12:56:15AM +0800, 胡聪 (hucc) wrote: > > > >> Returning 415 does not conform to the HTTP protocol when image and > >> proxy_pass > >> configured in same location. > >> > >> # HG changeset patch > >> # User hucongcong <hucon...@foxmail.com> > >> # Date 1497890354 -28800 > >> # Tue Jun 20 00:39:14 2017 +0800 > >> # Node ID af3a94de6a6549dec5e1205514eda1893313a14c > >> # Parent d1816a2696de8c2faa1cd913a151e5f62a8620f3 > >> Http image_filter: return 405 when method is HEAD and body is empty. > >> > >> diff -r d1816a2696de -r af3a94de6a65 > >> src/http/modules/ngx_http_image_filter_module.c > >> --- a/src/http/modules/ngx_http_image_filter_module.c Fri Jun 16 > >> 18:15:58 2017 +0300 > >> +++ b/src/http/modules/ngx_http_image_filter_module.c Tue Jun 20 > >> 00:39:14 2017 +0800 > >> @@ -330,6 +330,12 @@ ngx_http_image_body_filter(ngx_http_requ > >> } > >> } > >> > >> + if (r->method & NGX_HTTP_HEAD) { > >> + return ngx_http_filter_finalize_request(r, > >> + > >> &ngx_http_image_filter_module, > >> + NGX_HTTP_NOT_ALLOWED); > >> + } > >> + > >> return ngx_http_filter_finalize_request(r, > >> > >> &ngx_http_image_filter_module, > >> > >> NGX_HTTP_UNSUPPORTED_MEDIA_TYPE); > > > >Please clarify why you think that the current code is wrong. I > >don't see any problems with returning 415 to HEAD requests as long > >we are going to return 415 to GETs. > > Ok, the problem is that nginx will return 200 to GET request and > 415 to HEAD request. > > The configuration looks like: > #proxy_method GET;#not configured > location / { > image resize 180 360; > #... > proxy_pass http://test_upstream$uri; > } Ok, so the problem appears when using proxy_pass without additional configuration, image_filter, and a HEAD request. Unfortunately, the suggested change will also break the correct behaviour in other cases, for example, when serving static files. Using "proxy_method GET;" might be a better option. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel