NGINX : 如何屏蔽未被定义的虚拟主机的访问
参考: [ 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 : 如何屏蔽未被定义的虚拟主机的访问的更多相关文章
- Nginx入门篇(三)之虚拟主机配置
一.虚拟主机概念 所谓虚拟主机,在Web服务当中就是一个独立的网站站点,这个站点对应独立的域名(也有可能是IP或者端口),具有独立的程序和资源目录,可以独立地对外提供服务供用户访问. 这个独立的站点在 ...
- Nginx的配置文件简介及在Nginx中配置基于不同ip的虚拟主机
Nginx的配置文件简介及在Nginx中配置基于不同ip的虚拟主机: #user nobody; worker_processes 1; #error_log logs/error.log; #err ...
- 关于apache 虚拟主机配置访问403的问题
<Directory /> Options FollowSymLinks Order allow,deny Allow from all</Directory&g ...
- nginx学习(2):启动gzip、虚拟主机、请求转发、负载均衡
一.启用gzip gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; ...
- Nginx入门讲解——初步认识了解nginx.conf配置文件以及配置多个虚拟主机
本文引自网络进攻学习之用https://blog.csdn.net/weixin_38111957/article/details/81080539 一. 引言上节文章讲述了如何用信号控制Nginx服 ...
- Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试
标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9 ...
- Nginx学习笔记(二)--- 配置虚拟主机
Linux下安装Nginx https://www.cnblogs.com/dddyyy/p/9780705.html 1.虚拟主机介绍 一台服务器分成多个"独立"的主机,每台虚 ...
- nginx篇最初级用法之SSL虚拟主机
注意:在源码安装nginx时必须要使用--with-http_ssl_module参数启动加密模块. openssl genrsa > cert.key //使用openssl自己签发私钥 o ...
- nginx篇最初级用法之三种虚拟主机基于域名\基于端口\基于IP地址端口的虚拟主机
在nginx中虚拟主机的类型与apache一样也有三种 1.基于域名的虚拟主机 2.基于端口的虚拟主机 3.基于IP地址端口的虚拟主机 在nginx配置文件中每一个server为一个虚拟主机如果需要多 ...
随机推荐
- Bit-map法处理大数据问题
问题引入: 1.给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?2.给定一个千万级别数据量的整数集合,判断哪些是重复元素.3.给 ...
- EF使用报错说缺少引用
在程序中已经引用了EF,也引用了System.Data,但是一起报这个错误: 在类前面也已经写了 using System.Data.Entity,百思不得其解,最后才发 ...
- runtime总结 iOS
Runtime的特性主要是消息(方法)传递,如果消息(方法)在对象中找不到,就进行转发,具体怎么实现的呢.我们从下面几个方面探寻Runtime的实现机制. Runtime介绍 Runtime消息传递 ...
- redis入门:介绍、特点、安装、各类型常用操作
一.redis介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. Redis支持多种类型的数据结构,如 字符串(strings), 散列(ha ...
- Python初步
准备在工作之余看看Python的东西 收录一些资料 Python初学者(零基础学习Python.Python入门)常见问题:书籍推荐.资料.社区 http://blog.csdn.net/xiaowa ...
- React切换显示和隐藏
1 {radioChange >= 0 && 2 <div> 3 {radioChange === 0 ? ( 4 <div className={style. ...
- BZOJ 2333 SCOI2011 棘手的操作 并查集+可并堆
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2333 ..题意概述就不写了,各位老爷如果是看着玩的可以去搜一下,如果是做题找来的也知道题干 ...
- gradle在build之后执行任务
在打包后一般会有copy jar文件的需求. 先在build.gradle文件中定义你的task: task myCopy{ println "some copy code..." ...
- tomcat8 管理页面403 Access Denied的解决方法
安装tomcat,配置好tomcat环境变量以后,访问manager app页面,出现403 Access Denied错误,解决的方法如下: 首先在conf/tomcat-users.xml文件 ...
- WCF身份验证一:消息安全模式之<Certificate>身份验证
消息安全模式的证书身份验证方式,基于WSHttpBinding绑定协议的实现过程.主要内容:基本概念,然后是制作证书.服务端配置.客户端配置.总结.这里应该和Transport传输安全模式之证书身份验 ...