<div dir="ltr">Have you tried adding response code 497 to your `error_pages` list?<div><br></div><div>I can't test now because I'm away from my nginx machines again at the moment, but the documentation for that case is here: <a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors">http://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors</a></div><div><br></div><div>Moshe</div><div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 8, 2020 at 9:30 PM Jeffrey 'jf' Lim <<a href="mailto:jfs.world@gmail.com">jfs.world@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">No problem, Moshe! Thank you so much for testing this out for me! This<br>
does take care of the case of "not HTTP" being sent (which is what<br>
'curl -k <a href="https://localhost/%" rel="noreferrer" target="_blank">https://localhost/%</a>' used to give me)... BUT, unfortunately I<br>
still get a 400 with 'curl <a href="http://localhost:443" rel="noreferrer" target="_blank">http://localhost:443</a>'. I believe you should<br>
get the same if you were to send http to the https server?<br>
<br>
-jf<br>
<br>
On Tue, Jun 9, 2020 at 9:15 AM Moshe Katz <<a href="mailto:kohenkatz@gmail.com" target="_blank">kohenkatz@gmail.com</a>> wrote:<br>
><br>
> Sorry, I wasn't actually in front of a server where I could check it before I sent that.<br>
><br>
> I just spent some time playing around with it on one of my servers, and I found that the second answer there does seem to work:<br>
><br>
> ```<br>
> location / {<br>
>     return 444;<br>
> }<br>
><br>
> error_page 400 500 =444 /444.html;<br>
><br>
> location = /444.html {<br>
>     return 444;<br>
> }<br>
> ```<br>
><br>
> I tested this using curl (using "curl -k <a href="https://example.com/%" rel="noreferrer" target="_blank">https://example.com/%</a>" as my bad request to trigger the 400) and it seems to work as desired in HTTP 1.0 and 1.1. However, when using HTTP2, curl just hangs instead of showing an error that the connection is closed. If your site doesn't respond to HTTP2 (which is fine since it's a do-nothing site anyway), then you don't have to worry about it.<br>
><br>
> Moshe<br>
><br>
><br>
><br>
> On Mon, Jun 8, 2020 at 8:40 PM Jeffrey 'jf' Lim <<a href="mailto:jfs.world@gmail.com" target="_blank">jfs.world@gmail.com</a>> wrote:<br>
>><br>
>> Thanks, Moshe. I've tried that, but I've found that if you send<br>
>> anything that's invalid at the HTTP layer by nginx, like talking http<br>
>> to a https server, or sending invalid http (random junk), you'll get<br>
>> either 400 or 500. It's still not "complete", unfortunately.<br>
>><br>
>> -jf<br>
>><br>
>> --<br>
>> He who settles on the idea of the intelligent man as a static entity<br>
>> only shows himself to be a fool.<br>
>><br>
>> On Tue, Jun 9, 2020 at 4:54 AM Moshe Katz <<a href="mailto:moshe@ymkatz.net" target="_blank">moshe@ymkatz.net</a>> wrote:<br>
>> ><br>
>> > I found the same question asked on StackOverflow a few years ago:  <a href="https://stackoverflow.com/questions/41421111/http-444-no-response-instead-of-404-403-error-pages" rel="noreferrer" target="_blank">https://stackoverflow.com/questions/41421111/http-444-no-response-instead-of-404-403-error-pages</a><br>
>> ><br>
>> > The accepted answer says to do it this way:<br>
>> ><br>
>> > ```<br>
>> > error_page 400 =444 @blackhole;<br>
>> ><br>
>> > location @blackhole {<br>
>> >     return 444;<br>
>> > }<br>
>> > ```<br>
>> ><br>
>> > They key that you missed is the "=444" in the error_page directive. It seems like you need BOTH that and the `return 444` in the location block.<br>
>> ><br>
>> > Moshe<br>
>> ><br>
>> ><br>
>> ><br>
>> > On Mon, Jun 8, 2020 at 4:35 PM Jeffrey 'jf' Lim <<a href="mailto:jfs.world@gmail.com" target="_blank">jfs.world@gmail.com</a>> wrote:<br>
>> >><br>
>> >> I've been trying and scratching my head over this for some time now.<br>
>> >> I've always set up a default server to return 444, but I've not been<br>
>> >> able to make it do the 444 *always*. If I get an invalid response,<br>
>> >> nginx "skips" the 444 to return 400 instead. I'd rather nginx do the<br>
>> >> 444, and not return 400.<br>
>> >><br>
>> >> I've searched and tried various things (like setting "error_page 400"<br>
>> >> to some location, and then returning 444 for that location), but I<br>
>> >> have not found anything that really works. Is there just no way to<br>
>> >> have a "complete" 444 response? What will it take to do this?<br>
>> >><br>
>> >> thanks,<br>
>> >> -jf<br>
>> >><br>
>> >> --<br>
>> >> He who settles on the idea of the intelligent man as a static entity<br>
>> >> only shows himself to be a fool.<br>
>> >> _______________________________________________<br>
>> >> nginx mailing list<br>
>> >> <a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
>> >> <a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
>> ><br>
>> > _______________________________________________<br>
>> > nginx mailing list<br>
>> > <a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
>> > <a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
>> _______________________________________________<br>
>> nginx mailing list<br>
>> <a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
>> <a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
><br>
> _______________________________________________<br>
> nginx mailing list<br>
> <a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
> <a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div>