vlambda博客
学习文章列表

配置nginx只允许域名访问,禁止ip访问【图文教程】

平凡也就两个字: 懒和惰;
成功也就两个字: 苦和勤;
优秀也就两个字: 你和我。
跟着我从0学习JAVA、spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!
每一篇文章都是心得总结,跟我学习你就是大牛!



配置nginx只允许域名访问,禁止ip访问【图文教程】


为什么要禁止ip访问页面呢?

      这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被恶意访问,我们可以通过禁止使用ip访问的方法,防止此类事情的发生。


2 两种解决办法

      这里介绍修改nginx配置文件(nginx.conf)两种方法,这两种方式只会允许www.test151.com域名访问,其他解析到nginx服务器公网ip的域名是不能访问的!!

      注意:nginx的配置文件中建议不要有tab符号,而是老老实实用空格代替!!!


2.1 方法一:添加一个默认server

新加的server(注意是新增,并不是在原有的server基础上修改):

server { listen 80 default; server_name _; return 403;}

在原来server前面插入上面新加的server配置,原sever配置为:

server { listen 80; server_name www.test151.com;}

配置示例:



2.2 方法二:在server段里添加正则表达式校验

在server段里插入如下正则:

if ($host != 'www.test151.com'){
   return 403;
}

server { listen 80; server_name www.test151.com; if ($host != 'www.test151.com'){ return 403; }}
配置示例:

配置nginx只允许域名访问,禁止ip访问【图文教程】

      设置成功后,就只能用域名访问网站,不能用ip访问了。


3 测试域名和ip访问

3.1 绑定host

      绑定host:将www.test151.com和www.test152.com域名解析到nginx的公网IP(114.115.161.154)。

配置nginx只允许域名访问,禁止ip访问【图文教程】



3.2 测试用www.test151.com域名访问nginx

配置nginx只允许域名访问,禁止ip访问【图文教程】


3.3 测试用www.test152.com域名访问nginx

配置nginx只允许域名访问,禁止ip访问【图文教程】


3.4 测试用解析到公网IP的备案域名访问nginx

配置nginx只允许域名访问,禁止ip访问【图文教程】


3.5 测试通过ip访问nginx

      以上就实现了nginx只允许某一个域名进行访问,不允许ip或其他绑定到nginx公网ip的域名访问!



   如果以上教程对您有帮助,为了不迷路,请关注一下吧~