在nginx上拒绝端口80上的某些子域

时间:2014-10-30 18:58:37

标签: nginx

我有一些域名/子域名,我有一个server块可以正确地将它们重定向到443端口。但我还要尝试做的是几个子域名,我不知道#39; t希望它在端口80上完全连接。

以下是我重定向到端口443的值的示例。

server {
    listen       80;
    server_name ~^(?<subvar>sub1|sub2|sub3|sub3)\.example\.com$;

    return 301 https://$subvar.example.com$request_uri;
}

所以我也有一个sub4.example.com,我根本不想在端口80上连接,但是当我尝试访问它时,我得到了nginx 404找不到的消息,我想要实现的目标是一个未找到的服务器&#34;一种消息。

如果您想了解更多信息,或者我错过任何信息,请与我们联系。

1 个答案:

答案 0 :(得分:2)

  • 请勿在端口80上侦听这些域名
  • 在默认vhost中返回nginx的特殊HTTP代码444
server {
    listen 80 default_server;
    return 444;
}

server {
    listen 80;
    server_name ~^(?<subvar>sub1|sub2|sub3)\.example\.com$;
    return 301 https://$subvar.example.com$request_uri;
}