Nginx如何合理配置启用HTTPS的网站禁止使用服务器IP地址直接访问

以下是nginx官方给出的配置:

server {
    listen      80;
    server_name "";
    return      444;
}

https://nginx.org/en/docs/htt...
但是好像这只支持http,如果https的话不管配置在哪、是否配置default_server都会把用域名访问和IP直接访问444。

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com;

    if ( $host = $server_addr ) {
        return 444;
    }
    # ...
}

https://paste.ubuntu.com/2340...

我现在是这样配置的,http请求301跳转到https,然后用if来检测如果是用服务器IP地址来请求的话就444。但是这不是一个好的配置(https://www.nginx.com/resourc...,有更好的配置实践吗?

阅读 7.1k
1 个回答
新手上路,请多包涵

server {

listen 80 default;  
rewrite ^(.*) https://域名;  

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题