nginx配置拦截访问域名

这篇具有很好参考价值的文章主要介绍了nginx配置拦截访问域名。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、Nginx Referer模块

nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求。当一个请求头的Referer字段中包含一些非正确的字段,这个模块可以禁止这个请求访问站点。构造Referer的请求很容易实现,所以使用这个模块并不能100%的阻止这些请求。

2、valid_referers 指令

语法: valid_referers none | blocked | server_names | string … ;

配置段: server, location

指定合法的来源'referer', 他决定了内置变量$invalid_referer的值,如果referer头部包含在这个合法网址里面,这个变量被设置为0,否则设置为1. 需要注意的是:这里并不区分大小写的.

参数说明:

none:请求头缺少Referer字段,即空Referer
blocked:请求头Referer字段不为空(即存在Referer),但是值被代理或者防火墙删除了,这些值不以“http://”或“https://”开头,通俗点说就是允许“http://”或"https//"以外的请求。
server_names:Referer请求头白名单。
arbitrary string:任意字符串,定义服务器名称或可选的URI前缀,主机名可以使用*号开头或结尾,Referer字段中的服务器端口将被忽略掉。
regular expression:正则表达式,以“~”开头,在“http://”或"https://"之后的文本匹配。

server { 
    listen   80     ; 
    server_name  img.abc.com; 
    # 必须使用域名访问 
 
    if ($host != 'img.abc.com') { 
            return 403 ; 
    } 
 
    # 拦截非法referer 
    valid_referers none www.abc.com img.abc.com ; 
    if ($invalid_referer) { 
        return 403 ; 
        #rewrite ^.*$ http://www.baidu.com/403.jpg; 
    } 
    charset utf-8; 
    location / { 
        ………… 
    } 
}

上面配置合法的Referer为  www.abc.com  /  img.abc.com  和 无Referer(浏览器直接访问,就没有Referer)   ; 其他非法Referer请求过来时, $invalid_referer 值为1 , 就return  403 , 或者重定向到一个403图片。文章来源地址https://www.toymoban.com/news/detail-647077.html

到了这里,关于nginx配置拦截访问域名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过nginx的upstream配置域名进行http/htts的访问最佳实践方案(406/404问题解决)

    ​ 最近,开发部门有一个访问需求,被访问方给了我们两个https的域名访问接口,这里假设为: ​ 这两个域名解析出来的地址和接口信息都是一样的,但是根据要求,需要将两个域名访问接口作为主备的方式进行配置,在https://aaa.target.com/mytarget/login/出现异常不能使用的时候

    2024年01月19日
    浏览(37)
  • windows10下设置本地apache\nginx站点部署ssl证书,使本地配置的域名可以用https访问

    首先我们需要下载openssl来生成证书文件: 去官方网址下载https://slproweb.com/products/Win32OpenSSL.html; 下载好了,双击exe文件,然后就下一步,下一步安装完成; 安装之后配置环境变量,新建一个系统变量OPENSSL_HOME,值就是你安装目录下的bin,然后在系统变量path,增加%OPENSSL_HO

    2024年02月15日
    浏览(33)
  • Nginx禁止ip访问 只能通过域名访问

    由于公司业务需求,Nginx服务器需要实现禁止ip直接访问 只能通过域名访问。具体实现如下: 1.找到你的配置文件ngin.conf    添加以下配置就行    //添加在http括号内  ,并且在第一个server前面一行就行。说明如图文所示:  添加完 保存 ;重新加载下nginx  登录测试就ok。有

    2024年02月13日
    浏览(37)
  • Nginx 禁止IP访问 只允许域名访问,以及Nginx防盗链设置

           我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了。今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网。        下面我们就先看看Ngi

    2024年02月11日
    浏览(39)
  • 基于Geoip2实现Nginx拦截国外IP访问网站

    最近公司上线了一个APP,过段时间发现告警群总有些莫名的异常,通过排查发现是被攻击了,并且攻击IP全是国外的,基于APP业务全在国内,最简单办法就是屏蔽这些IP。云上虽有产品但收费,自己动手才是王道。 目录 一、实现思路 二、配置方法    2.1 软件下载 2.1.1 Nginx下

    2024年01月16日
    浏览(28)
  • nginx 前后的分离 (ip/域名)访问 负载均衡

    首先前端随便访问后端的一个端口,后端监听这个端口进行服务转发。 比如:8888 然后nginx在我们的服务器上部署两个后端 这里我用docker部署了两个 当然你也可以在两个服务器上面部署两个后端,只要在nginx配置代理的时候修改一下ip就可以了。 nginx配置

    2024年04月29日
    浏览(30)
  • 【实现HTTPS访问】Nginx + SSL证书 + 域名整合流程详解

    1、购买云服务器 我购买的是 阿里云ECS(2核2G) ,具体购买流程这里不做过多讲解。 注意 :中国大陆的阿里云服务器(套餐为3个月以上),想要使用域名访问服务器需要 备案 ,低于3个月使用期的服务器不可以备案(不可以使用域名访问),我购买的是7天有效期,服务器

    2024年01月22日
    浏览(43)
  • nginx部署以及反向代理多域名实现HTTPS访问

    直接进入/opt/nginx_main/nginx-info里面创建了 选择域名 然后配置免费ssl证书 证书设置我们需要的域名 然后申请之后稍等一段时间 之后点击下载,下载nginx的证书文件 一个pem,一个key 然后把下载的证书放到上面的 ssl路径 记录好位置即可,步骤 2.5会用到 1.先进入阿里云的数字证

    2024年02月12日
    浏览(39)
  • Nginx域名重定向(如何访问的域名和实际的数据请求路径不同,可解决前端跨域)

    感情需要被抑制,不能泛滥… 当需要将一个域名重定向到另一个域名并且用户仍然看到原始域名时,Nginx是一个强大的工具。这种场景通常涉及到反向代理或重写URL的技巧。在本篇博客中,我们将详细介绍如何使用Nginx来实现这个目标,以及提供多个示例。 背景 假设您有两个

    2024年02月06日
    浏览(43)
  • Nginx配置IP拦截

    最近百家饭团队开源了一个Nginx日志分析工具APIcat,这周在生成报告的基础上,实现了基于Nginx的自动拦截防护,正好研究了一下Nginx配置IP拦截的配置 nginx配置ip拦截基本是通过deny和allow两个配置来实现的。可以配置单ip的拦截放行,也可以配置网段的拦截放行,比如:

    2023年04月08日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包