Nginx如何限制IP访问只允许特定域名访问

目录
  • 1、找到 nginx 的配置文件
  • 2、添加新的 server
  • 3、修改 server
  • 4、访问测试
  • 总结

为了我们的服务器安全,我们需要禁止直接使用 IP 访问我们的服务器,我们可以借助 Nginx 完成

1、找到 nginx 的配置文件

cd /usr/local/nginx/conf/

找到 nginx.conf 文件

编辑它

2、添加新的 server

# 禁止ip访问
server {
    listen 80 default_server;
    listen 443 ssl default_server;
    server_name _;
    return 403;
}

注意是在所有的 server 前面添加一个新的 server,如图所示

这里我们开启了 http 和 https 的监听,如果是直接使用 ip 访问的,我们将会返回 403 状态码给客户端

3、修改 server

nginx.conf 文件中默认配置信息为

server {
    listen       80;
    server_name  localhost;

    location / {
        root   html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

server_name 对应的是 localhost,这里我们需要更改成我们指定的域名,如:

server {
    listen       80;
    server_name  xxx.com;

    location / {
        root   html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

4、访问测试

重启 nginx

./nginx -s reload

浏览器输入 IP 地址,出现如下

说明我们的配置已经成功了

我们输入域名试试

输入域名能够正常访问,说明我们的配置生效,此时就限制了 IP 的访问,只允许特定域名访问了

总结

到此这篇关于Nginx如何限制IP访问只允许特定域名访问的文章就介绍到这了,更多相关Nginx限制IP访问内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Nginx限制IP并发数与下载速度的方法

    在Nginx服务器上进行一些常规设置,来限制其并发数及会话空间等. nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量 1,添加limit_zone 这个变量只能在http使用 代码示例: 复制代码 代码如下: vi /usr/local/nginx/conf/nginx.conflimit_zone one $remote_addr 10m; 2,添加limit_conn 这个变量可以在http, server, location使用只限制一个站点,所以添加到server里面

  • 基于Nginx实现限制某IP短时间访问次数

    如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一直到宕机崩溃. cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一

  • Nginx限制IP访问某些页面的操作

    1.要禁止所有IP访问a1.htm a2.htm a3.htm这个三个页面在location可以这样写 location ~* /(a1.htm|a2.htm|a3.htm)$ { deny all; condition---; } 2.只允许指定的ip访问a1.htm a2.htm a3.htm这个三个页面,其他IP的访问都拒绝 location ~* /(a1.htm|a2.htm|a3.htm)$ { allow 10.0.0.2; deny all; condition---; } 这种

  • Nginx服务器限制IP访问的各种情况全解析

    限制某个IP同一时间段的访问次数 如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包, 造成对方服务器资源耗尽,一直到宕机崩溃. cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZo

  • Nginx限制某个IP同一时间段的访问次数和请求数示例代码

    nginx可以通过ngx_http_limit_conn_module和ngx_http_limit_req_module配置来限制ip在同一时间段的访问次数. ngx_http_limit_conn_module:该模块用于限制每个定义的密钥的连接数,特别是单个IP​​地址的连接数.使用limit_conn_zone和limit_conn指令. ngx_http_limit_req_module:用于限制每一个定义的密钥的请求的处理速率,特别是从一个单一的IP地址的请求的处理速率.使用"泄漏桶

  • Nginx如何限制IP访问只允许特定域名访问

    目录 1.找到 nginx 的配置文件 2.添加新的 server 3.修改 server 4.访问测试 总结 为了我们的服务器安全,我们需要禁止直接使用 IP 访问我们的服务器,我们可以借助 Nginx 完成 1.找到 nginx 的配置文件 cd /usr/local/nginx/conf/ 找到 nginx.conf 文件 编辑它 2.添加新的 server # 禁止ip访问 server { listen 80 default_server; listen 443 ssl default

  • Nginx 禁止IP访问 只允许域名访问

    我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时 候生效最关键的一点是,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回50

  • 基于Nginx禁止指定IP、国外IP访问我的网站

    目录 用Nginx禁止指定IP.国外IP访问我的网站 ①安装 geoip2 扩展依赖: ②下载 ngx_http_geoip2_module 模块: ③解压模块到指定路径 ④安装 nginx 模块 ⑤下载最新的 IP 地址数据库文件 ⑥配置 nginx 配置文件 ⑦模拟测试验证 总结 用Nginx禁止指定IP.国外IP访问我的网站 想要实现这个功能有很多方法,下面我就来介绍基于 Nginx 的 ngx_http_geoip2 模块来禁止国外 IP 访问网站. ①安装 geoip2 扩展依赖: [

  • 详解CentOS下Nginx如何禁止IP访问

    我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效最关键的一点是,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦. 就可以这样

  • Nginx禁止ip访问或非法域名访问

    在生产环境中,为了网站的安全访问,需要Nginx禁止一些非法访问,如恶意域名解析,直接使用IP访问网站.下面记录一些常用的配置示例: 1)禁止IP访问 如果没有匹配上server name就会找default默认,返回501错误. server { listen 80 default_server; server_name _; return 501; } 2)通过301跳转到主页 server { listen 80 default_server; server_name _; rewrite

  • Nginx定义域名访问方式

    最近在搭建Nginx,做到域名访问的时候总是访问不了. nginx的配置文件nginx.conf中server配置如下: server { listen 80; server_name hehe.weige.com; #charset koi8-r; #access_log logs/host.access.log main; location / { root html-hehe; index index.html index.htm; } } 配置完之后 在sbin 目录下执行命令 ./ng

  • 在python中按照特定顺序访问字典的方法详解

    最近使用python写一些东西,在参考资料的时候发现字典是没有顺序的,那么怎么样按照一定顺序访问字典呐,我找到了一个小方法: 假设一个字典是: D = {'a': '1', 'b': '2', 'c': '3'} 如果我们要按照a, b, c的顺序访问字典,可以借助一个列表,比如说: L = list(D.keys()) L.sort() for key in L: print(key, 'is' D[key]) 输出为: a is 1 b is 2 c is 3 需要倒序的话只需使用倒序函数排

  • nginx+tomcat 通过域名访问项目的实例

    之前对于使用域名如何访问项目很好奇,但苦于搞一个自己的域名实在是太麻烦了,还需要去买,各种提交资料,等待审核,备案...现在手上没什么项目,也什么事情,想着折腾折腾... 看着腾讯服务器打折,花了40块钱大洋买了一个最低版本的服务器(穷,没办法,反正个人用用够了),这里不得不吐槽一下腾讯,安全级别设那么高干嘛,直接远程登录不行,因为ip都ping不通,还有各种端口.命令全部禁掉,因为之前用过阿里云,安全级别没这么高,折腾了大半天,配置如下 然后开始正式操作,先随便搭个项目,能访问就行,通过tom

随机推荐