我有一个使用nginx的私人HTTPS服务器。 因此,我不在乎浏览器的兼容性,也不在乎HTTPS的redirect。 我只是希望它在我的环境和其他地方工作。 我已经configuration了“listen 17648 ssl;”。 每当我尝试使用普通的HTTP连接到它,我得到臭名昭着的“简单的HTTP请求被发送到HTTPS端口”的回应。
当HTTP请求发送到HTTPS端口时,有没有办法阻止nginx发送任何响应? 我希望nginx简单地closures连接,如果请求不是SSL,或者可能返回一些SSL级别的错误,但根本没有普通的HTTP响应,甚至没有错误响应。
从Nginx 返回子句的文档:
非标准代码444在不发送响应报头的情况下closures连接。
所以我试图抓住错误497“HTTP到HTTPS”,并试图返回444这种方式:
error_page 497 =444 @close; location @close { return 444; }
不幸的是,由于这个错误,导致了一个“挂起”的状态
使用开发人员提出的解决方法它似乎工作:
error_page 497 =444 @close; location @close { return 0; }
试试如果这符合您的需求!