参考: [ how to prevent undefined server names ]

nginx 的默认虚拟主机

Nginx 支持基于域名和端口的虚拟主机(virtual host), 根据获取的 $host$server_port 将请求分配给对应的虚拟主机.

而如果一个请求被解析到 webserver, 但是并未配置其对应的虚拟主机, 则会将请求转发给 默认虚拟主机(default server).

默认虚拟主机可以使用 default_server 指定, 比如:

server {
listen 80 default_server;
server_name example.net www.example.net;
...
}

而如果没有使用定义,则用 第一个虚拟主机 的规则处理请求. 比如是 nginx.conf 的第一个虚拟主机, 或者是 conf.d 内 排序第一个 的配置文件的 第一个虚拟主机 的规则处理请求.

比如, nginx.conf 配置文件内没有配置虚拟主机, 而是都包含在 conf.d, 在 conf.d 下有: a.conf, b.conf, c.conf... 则处理请求的规则是 a.conf 中定义的第一个虚拟主机.

屏蔽未被定义的虚拟主机访问

搞清楚 nginx 虚拟主机匹配规则, 那么就可以在默认的虚拟主机里屏蔽未被定义的虚拟主机访问.

server {
listen 80 default_server;
server_name "";
return 444;
} server {
listen 80;
server_name example.org www.example.org;
...
} server {
listen 80;
server_name example.net www.example.net;
...
}

这样, 就可以将未被定义的虚拟主机访问屏蔽掉. 主要应用是屏蔽用 IP 地址访问 WebServer.

NGINX : 如何屏蔽未被定义的虚拟主机的访问的更多相关文章

  1. Nginx入门篇(三)之虚拟主机配置

    一.虚拟主机概念 所谓虚拟主机,在Web服务当中就是一个独立的网站站点,这个站点对应独立的域名(也有可能是IP或者端口),具有独立的程序和资源目录,可以独立地对外提供服务供用户访问. 这个独立的站点在 ...

  2. Nginx的配置文件简介及在Nginx中配置基于不同ip的虚拟主机

    Nginx的配置文件简介及在Nginx中配置基于不同ip的虚拟主机: #user nobody; worker_processes 1; #error_log logs/error.log; #err ...

  3. 关于apache 虚拟主机配置访问403的问题

     <Directory />    Options FollowSymLinks    Order allow,deny    Allow from all</Directory&g ...

  4. nginx学习(2):启动gzip、虚拟主机、请求转发、负载均衡

    一.启用gzip gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; ...

  5. Nginx入门讲解——初步认识了解nginx.conf配置文件以及配置多个虚拟主机

    本文引自网络进攻学习之用https://blog.csdn.net/weixin_38111957/article/details/81080539 一. 引言上节文章讲述了如何用信号控制Nginx服 ...

  6. Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试

    标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9 ...

  7. Nginx学习笔记(二)--- 配置虚拟主机

    Linux下安装Nginx  https://www.cnblogs.com/dddyyy/p/9780705.html 1.虚拟主机介绍 一台服务器分成多个"独立"的主机,每台虚 ...

  8. nginx篇最初级用法之SSL虚拟主机

    注意:在源码安装nginx时必须要使用--with-http_ssl_module参数启动加密模块. openssl genrsa > cert.key  //使用openssl自己签发私钥 o ...

  9. nginx篇最初级用法之三种虚拟主机基于域名\基于端口\基于IP地址端口的虚拟主机

    在nginx中虚拟主机的类型与apache一样也有三种 1.基于域名的虚拟主机 2.基于端口的虚拟主机 3.基于IP地址端口的虚拟主机 在nginx配置文件中每一个server为一个虚拟主机如果需要多 ...

随机推荐

  1. CentOS 7 安装Nginx并实现域名转发

    CentOS 7 条件 教程中的步骤需要root用户权限. 一.添加Nginx到YUM源 添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令: sudo rpm -Uvh http ...

  2. json格式化显示样式js代码分享

    最近开发中需要在页面展示json.特整理了下代码,送给大家,希望能帮到有同样需求的朋友们. 代码: <html> <script src="http://cdn.bootc ...

  3. 教你如何用Docker快速搭建深度学习环境

    本教程搭建集 Tensorflow.Keras.Coffe.PyTorch 等深度学习框架于一身的环境,及jupyter. 本教程使用nvidia-docker启动实例,通过本教程可以从一个全新的Ub ...

  4. Android之内容提供者ContentProvider的总结

    本文包含以下知识点: ContentProvider Uri 的介绍 ContentResolver: 监听ContentProvider的数据改变 一:ContentProvider部分 Conte ...

  5. Jenkins的pipeline脚本中获取git代码变更用户名和email

    // Get checkout output valuedef changeLogSets = checkout([$class: 'GitSCM', branches: [[name: '*/mas ...

  6. NO7——二分

    int binsearch(int *t,int k,int n) {//t为数组,k是要查找的数,n为长度,此为升序 ,high = n,mid; while(low<=high) { mid ...

  7. C++STL——map

    一.相关定义 map 关联容器,存储相结合形成的一个关键值和映射值的元素 提供一对一(第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可以称为该关键字的值)的数据处理能力 map对象是模 ...

  8. c# 复选下拉框

    引用dll: http://pan.baidu.com/s/1qXa97UO 自定义类: namespace TMI_S { /// <summary> /// 功能描述:自定义多选下拉框 ...

  9. java中使用POI+excel 实现数据的批量导入和导出

    java web中使用POI实现excel文件的导入和导出 文件导出 //导入excle表 public String exportXls() throws IOException{ //1.查询所有 ...

  10. 创建带maven的javaWeb项目

    1File——Maven——maven-archtypes-webapp GroupId:表示项目组织唯一标识符 ArtifacrId:表示项目唯一标识符 例如项目名称 Version是项目版本 这三 ...