最近迁移网站从今天开始种树到新的华为云服务器,通过nginx转发,发现可以用ip直接进行访问,故去百度了一下只可用域名访问的方式,找到了若干方法,记录一下。
前言
今天登录百度统计时候发现有一些请求是用ip访问的,不用说了,这些肯定是恶意请求,也怪自己当初没注意配置禁止IP方式访问。
上网搜了一下,发现还真有必要禁止IP访问,因为这样做可以避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,现在居心叵测的人实在太多了,天天扫描小服务器,实在受不了。
几种方法
总结如下,亲测可用。如果您对返回码不太了解的话可以访问下面这一篇HTTP返回码
大全。
所有常见不常见的http返回码大全
方法一:直接40X
判断host
是否是www.happyhong.cn
,不是的话直接403
server{ listen 80; server_name www.happyhong.cn ; #server_name localhost; if ($host != 'www.happyhong.cn'){ return 403; }
直接无法访问,显示403,非常OK。
方法二:给我跳回来
这个方法无非就是当使用IP访问时,还是跳回自己的域名,还能作为影(引)流之主
,具体形式如下。
server{ listen 80; server_name www.happyhong.cn ; } ..... ..... server { listen 80 default_server; server_name _; rewrite ^(.*) http://www.happyhong.cn permanent; }
可以从上图看到直接IP访问时先301再跳转到www.happyhong.cn
。
方法三:直接返回值
当IP访问时直接返回500
,也不用判断host
。(可把400改成404或502等错误码)
server { listen 80 default_server; server_name _; return 500; }
也可以是这样,注意观察与上面有何不同哦。
server { listen 80 default; server_name ""; return 500; }
在这里,我们设置的主机名为字符串以匹配未定义的“host”头的请求,并且返回了一个nginx特有的,并且返回500,nginx从0.8版本之后,这已成为主机名默认的设置,所以可以省略“sever_name”,可简化为下面形式。
server { listen 80; return 500; }
结束
懂王nginx系列第一篇就到这里了,更多内容请访问从今天开始种树
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论