一、Nginx 空主机头禁止 如果 Nginx 配置了空主机头,那么任意域名解析指向到服务器IP,都可以访问站点,为了防止域名解析恶意指向主机,可以将 Nginx 默认的空主机头禁止,方法是通过修改 Nginx 的主配置文件 nginx.conf ,使其主机头返回错误信息 500
1. 域名支持泛解析,即是指:把A记录 *.域名.com 解析到服务器IP,服务器IIS中做绑定,绑定时主机头为空;
基本是一些概念,不过看了这些东西基本理解了泛解析和泛绑定的意思,终于给我配置成功了。下面就一一说下这个问题:
当别人把垃圾域名转向至你的服务器时, 如果不采取措施,那么后果不堪设想。 国内机房一般都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。 Nginx默认的虚拟主机允许用户经过IP访问,或者经过未设置的域名访问(比如有人把他本人的域名指向了你的ip)你的VPS或服务器。 默认情况下,只要将域名解析到VPS的IP上,就可以访问安装lnmp的VPS。 如果想避免这种情况的出现,可以修改nginx.conf ,将默认的虚拟主机修改为如下即可屏蔽未绑定域名访问: 复制代码 代码如下: server { listen 80 default; return 500; } 也可以把这些流量收集起来,导进到本人的网站,只需做以下跳转设置就可以: 复制代码 代码如下: server { listen 80 default; rewrite ^(.*) http://cqgua.com permanent; } 以此类推, 禁止通过IP访问,可以写成: 复制代码 代码如下: server { listen 80 default; server_name _; return 500; }
在前端项目开发中,我们可以启动 devserver 管理静态资源服务,但是发布线上后要保证稳定,一般会选择一个高效能 + 稳定的静态服务器来管理前端资源。
1>两个网站使用不同的IP地址。这样用户在访问第一个网站需在浏览器中输入http://192.168.100.1.访问第二个网站需在浏览器中输入http://192.168.200.1.(假设的)
1.开始→管理工具→internet信息服务(iis)管理右键添加到桌面快捷方式,然后打开如图
1.当前市面上看到的一些服务器,开放的端口一般都要求为 '80' 端口 所以80端口成了商用端口
首先建三个网站a、b、c,具体的步骤如下图: 1、www.a.com:80 2、www.b.com:80 3、www.c.com ok,三个网站建立完毕,现在使用cmd测试网站能否正常访问,过程如下
IIS,和apche一样是一种web服务器,有了这种服务器,我们的网站程序或其他web程序才可以正常运行。这里就教新手在服务器上怎么用IIS部署搭建一个网站。
老高最近在整理服务器的nginx配置,但是整理好之后有一个问题,就是访问一个没有绑定的域名(已解析)的时候,会自动跳转到blog.phpgao.com。为了解决这个问题,查了很多资料,发现此文档Nginx如何处理一个请求,问题解决。
随着互联网的发展,网络安全问题变得日益重要。HTTP Host头攻击作为一种常见的网络攻击手段,对网站和用户的安全造成潜在威胁。本文将解释什么是HTTP Host头攻击,攻击的原理,危害以及相应的防御措施。
一台服务器安装了APACHE,如何绑定多个域名和网站内容呢?最简单的方法当然就是不同的站用不同的端口。但这样就需在域名后加入端口号才能访问,不能直接以域名访问。另一个方法就是使用主机头名虚所主机了。打开APACHE配置文件httpd.conf 在最后一行输入以下代码
Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP/FTP 代理服务器。自Nginx 发布的几年来看,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。所以很有必要通过Nginx体系结构来了解Nginx的运作和优点。
通常情况下,我们搭建WEB环境都是用LNMP等一键包工具,但是对于根目录/wwwroot/default/会直接不管它。这时候一般任何域名解析过来都可以打开访问这个目录,这样就会出现很多问题,比如我们根目录有创建网站,这样会导致解析过来的域名都可以访问这个网站,当然一般我们是不建立网站而为空的。
当站点的规模达到一定程度,往往会对业务进行拆分,部署到一台服务器的不同站点,,而一个域名(顶级域名)只能绑定一个站点(核心站点),这个时候就通过给顶级域名创建子域名的方式(理论上一个顶级域名可以绑定50个子域名),将子域名绑定到相关的业务站点.在通过修改host文件的方式,将所有的域名解析到当前的服务器IP,再通过IIS的主机头(子域名)解析到业务站点上,过程如下图:
作者在测试Facebook的近期推出的某个新应用中(出于保密原因此处不便公开),存在跨站Websocket Hijacking漏洞,攻击者利用该漏洞可以劫持使用该新应用的用户Websocket 连接,之后构造恶意的Websocket信息,可实现对目标受害者的Facebook账号劫持。
三者之间的关系: 服务器通过vps可分为多个具有相同性能的虚拟服务器,根据服务器的需求选择所需空间的大小。
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
在本节中,我们将讨论错误的配置和有缺陷的业务逻辑如何通过 HTTP Host 头使网站遭受各种攻击。我们将概述识别易受 HTTP Host 头攻击的网站的高级方法,并演示如何利用此方法。最后,我们将提供一些有关如何保护自己网站的一般建议。
本文主要介绍如何实现在IIS服务器上使用泛域名解析,并给出了具体的实现步骤和示例代码。主要包括两个部分:1)通过配置ISAPI_Rewrite组件实现泛域名解析;2)通过编写ASP.NET程序实现泛域名解析。
NGINX 在默认情况下,直接输入IP,会访问服务器中已存在的站点。如果只解析域名,未绑定,也会出现此情况。为防止域名恶意解析,防止同服务器多站点时使用IP访问莫名跳转,或禁止IP直接访问。
Nginx是一个强大的网站服务器,它支持静态网站,本地代理和反向代理等等常用且实用的功能。该服务器包括很多的模块,不同的模块又有相应的指定的指令,ngingx通过读取这些指令进行相应的行为。
最近在看刘天斯的python自动化运维,按照刘老师的思路,记录一个dns轮询以及服务检测的粟子,作为学习笔记。
随着网络攻击手段的不断升级,各类安全威胁不断涌现。作为一种针对Web服务器的攻击方式,host主机头攻击已经引起越来越多的关注。它利用了Web服务器上的漏洞,将解析出来的请求数据发送到其他Web主机上,从而实现欺骗、窃取用户数据等恶意行为。因此,防范host主机头攻击已经成为Web服务器运维、安全人员不容忽视的任务。
rewrite是nginx一个特别重要的指令,该指令可以使用正则表达式改写URI。可以指定一个或多个rewrite指令,按顺序匹配。
【原因分析】 核实到RS上的nginx设置了主机头(server name),如下图,如果访问10.20.0.2会匹配到下面数据,如果访问的不是10.20.0.2会匹配到上面默认的404
没有服务器和公网IP,想要其他人访问自己做好的网站,该怎么办?今天教大家使用这款简单免费的内网穿透小工具——ngrok,有了它轻松让别人访问你的项目~
可以用来提高开发效率,它提供一下配置可以改变 devServer 的默认行为。除了在配置问题通过 devServer 传入参数外,还可以通过命令行参数传入。注意:只用在通过 devServer 去启动 webpack 时,配置文件里 devServer 才会生效,因为这些参数所对应的功能都是 devServer 提供的,webpack 本身并不认识 devServer 配置项。
location = / { # 精确匹配 /,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以/开头,所有这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以/documents/开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用 [ configuration C ] } location ~ /documents/Abc { # 匹配任何以 /documents/开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,才会采用这一条 [ configuration CC ] } location ^~ /images/ { # 匹配任何以/images/开头的地址,匹配符合以后,停止往下搜索正则,采用这一条 [ configuration D ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配所有以gif,jpg或jpeg结尾的请求 # 然而,苏朋友请求/images/下的图片会被config D处理,因为^~到达不了这一正则 [ configuration E ] } location /images/ { # 字符匹配到 /images/,继续往下,会发现^~存在 [ configuration F ] } location /images/abc { # 最长字符匹配到/images/abc,继续往下,会发现^~存在 # F与G的放置顺序是没有关系的 [ configuration G ] } location ~ /images/abc/ { # 只有去掉config D才有效:先最长匹配config G开头的地址,继续往下搜索,匹配到这一正则,采用 [ configuration H ] } location ~* /js/.*/\.js
老高在默认的nginx主配置中加入了时区,目的是输出日志时区默认为东八区。 同时加入了空主机头,防止直接用IP访问网站。
我们知道,在Windows的IIS服务器上,使用域名证书开启HTTPS并不是非常方便,在IIS 7.5及之前的版本上,添加HTTPS站点时,并不能指定主机头(即域名),需要加完之后,到IIS的配置文件中去修改配置,增加了一定的难度;而且如果之后相关的配置有变动,也可能会影响到之前的HTTPS站点,有很多坑。而域名证书到期,需要换证书的话,如果之前添加过很多个HTTPS站点,都会受到影响,需要一个一个的站点重新选择证书,重新修改IIS的配置文件,是一个让人头疼的操作。 那如果是域名证书到期了,有没有什么办法可以简化我们的操作呢?答案是有的,那就是使用证书续订操作。 证书续订,需要的证书格式是cer的,我们以从阿里云上申请的通配符域名证书为例来说一下。从阿里云后台下载下来的域名证书格式,有pem和pfx格式的,唯独没有cer格式的,需要自己转换一下。下面先说下格式转换吧: pem转cer,需要使用openssl,另外需要key文件。一共需要进行3次转换操作,才能转成cer格式: 1.先从pem转到p12,之后需要设置密码:
顾名思义,rewrite 就是重定向,就是将收到的请求依据配置重定向成为另一个请求并返回。 nginx、Apache 都提供了强大的 rewrite 功能,在实际使用中,也十分的方便,比如消息的转发或网站默认页面或出错页面的处理等。 ngx_http_rewrite_module 模块实现了对 url 的判断、正则匹配、重定向。
如果你有一台Windows服务器,要同时跑Apache和IIS,那么你就需要同时装这两款软件,但是他们都使用80端口,不可以同时启动。Apache和IIS共存,解决办法就是把IIS下的网站设置为80以外的端口,然后用Apache做代理,访问IIS下的网站。拿两个网站作为例子一个是php.rndto.com,上面放置了PHP程序(这个在配置中用不到,只是证明两款软件能同时正常运行),另一个就是iis.rndto.com,放置asp程序。
今天遇到网站之前的url被百度搜索引擎抓取,需要在服务中进行301强制跳转,(如访问:www.baidu.com/kenni-1,www.baidu.com/kenni-1/,两个统一跳转到www.b
翻了下HTTP1.1的协议标准RFC2616,下面是看到的一些它跟HTTP1.0的差别。
nginx Rewrite规则可以让网站的url中达到某种状态时定向/跳转到某个规则,本文具体介绍这些规则和说明。
一.正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 三.rewrite指令的最后一项参数为flag标记,flag标记有: 1.last 相当于apache里面的[L]标记,表示rewrite。 2.break本条规则匹配完成后,终止匹配,不再匹配后面的规则。 3.redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址。 4.permanent 返回301永久重定向,浏览器地址会显示跳转后的URL地址。
Nginx(发音同engine x)是一个异步框架的 Web 服务器,也可以用作反向代理,负载平衡器 和 HTTP 缓存。该软件由 Igor Sysoev 创建,并于2004年首次公开发布。同名公司成立于2011年,以提供支持。Nginx 是一款免费的开源软件,根据类 BSD 许可证的条款发布。一大部分Web服务器使用 Nginx ,通常作为负载均衡器。[1]
http://w00tsec.blogspot.com/2014/03/wilcard-dns-content-poisoning-xss-and.htm
前段时间把网站迁移到腾讯云,之前是lamp,现在改为lnmp,自以为nginx功底还可以,开发这么多年,平常环境都有配置。但是,但是,最近读站点做SEO优化,发现nginx很多地方不会配。比如:
而且两者有细微差别,使用alias指令必须用 last标记;使用proxy_pass指令时,需要使用break标记。Last标记在本条rewrite规则执行完毕后,会对其所在server{......}标签重新发起请求,而break标记则在本条规则匹配完成后,终止匹配。
1. location正则写法 语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。 ~ 开头表示区分大小写的正则匹配 ~* 开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 通用匹配,任何请求都会匹
变量 内置变量 $request_time 表示从接受用户请求的第一个字节到发送完整响应数据的时间,即包括接收请求数据时间、程序响应时间、输出响应数据时间。 $upstream_response_time 表示从nginx向后端(upstream定义的主机列表)建立连接开始到接受完数据,然后关闭连接为止的时间。 $http_referer 客户请求的完整'URI' $http_host 客户端请求的IP+端口 $scheme 使用的协议,'http'或者
矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”。我这么说,大家一定会反驳我,因为按“先匹配普通,再匹配正则”解释不了大家平时习惯的按“先匹配正则,再匹配普通”的实践经验。这里我只能暂时解释下,造成这种误解的原因是:正则匹配会覆盖普通匹配。
url重写是指通过配置conf文件,以让网站的url中达到某种状态时则定向/跳转到某个规则,比如常见的伪静态、301重定向、浏览器定向等
顺序 no优先级: (location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)
众所周知,如今的网站会包含大量的JavaScript文件/代码,而这些代码一般都取自于TypeScript、SCSS和Webpack等复杂的实现栈。为了减少标准网页的加载时间,开发人员会利用缓存来减少服务器上的负载并减少用户的延迟。虽然缓存通常是为了帮助提高服务的可靠性,使其更易于用户访问,但一些自定义缓存配置可能会引入拒绝服务漏洞,导致服务易受攻击。
领取专属 10元无门槛券
手把手带您无忧上云