当前位置: 首页 > 知识库问答 >
问题:

nginx - NGINX的valid_referers中的 server_names如何理解?

东方俊力
2023-07-10

关于Nginx的valid_referers指令,有不太理解的地方

其中, server_names 和 string 有啥区别,server_names 如何使用,
是这样用吗?

valid_referers none blocked server_names www.a.com www.b.com

其中的 server_names 是必须带着的关键词吗?能省略吗?
这样?

valid_referers none blocked www.a.com www.b.com

共有1个答案

商迪
2023-07-10

这个是防盗链用的。浏览器在访问页面上的资源的时候,会自动带上一个Referer头,比如你打开www.baidu.com的时候,会发现请求页面上其他资源的时候都会带上一个这样的头:

Referer: https://www.baidu.com/

目的是告诉服务端访问该资源是从哪个地址访问过来的。利用这个特性就可以实现简易防盗链。因此nginx的valid_referers指令就是指定哪些Referer是合法有效的头,只有有效的Referer才会访问到资源,否则会添加一个内部的变量$invalid_referer = 1

server_names是一个特殊的属性值,代表匹配server_name指令的所有参数。而strings是你自己自定义的其他主机头或地址,范例官方文档也给你了。

 类似资料:
  • map $sent_http_content_type $expires { "text/html" epoch; "text/html; charset=utf-8" epoch; default off; } server { listen 80;

  • 本文向大家介绍nginx代理多次302的解决方法(nginx Follow 302),包括了nginx代理多次302的解决方法(nginx Follow 302)的使用技巧和注意事项,需要的朋友参考一下 用proxy_intercept_errors和recursive_error_pages代理多次302 302是HTTP协议中的一个经常被使用状态码,是多种重定向方式的一种,其语义经常被解释为“

  • 目标: 我想在非常简单的场景中测试所有Nginx代理超时参数。我的第一种方法是创建非常简单的HTTP服务器,并设置一些超时: 在听和接受之间测试proxy_connect_timeout 在接受和读取之间测试proxy_send_timeout 在读取和发送之间测试proxy_read_timeout 测试: 1)服务器代码(python): 2)Nginx配置: 通过显式设置proxy\u co

  • 基于名字的虚拟主机 Nginx首先选定由哪一个虚拟主机来处理请求。让我们从一个简单的配置(其中全部3个虚拟主机都在端口*:80上监听)开始: server { listen 80; server_name example.org www.example.org; ... } server { listen 80; server_nam

  • 问题内容: 我使用nginx作为前端服务器,我修改了CSS文件,但是nginx仍在使用旧文件。 我试图重新启动nginx,但没有成功,我已经用Google搜索,但是找不到清除它的有效方法。 一些文章说我们只能删除缓存目录:,但是我的服务器上没有这样的目录。 我现在该怎么办? 问题答案: 我遇到了完全相同的问题-我在Virtualbox中运行了Nginx。我没有打开缓存。但是看起来像已经设置好了,这

  • nginx在应用程序中的作用 解决跨域 请求过滤 配置gzip 负载均衡 静态资源服务器 nginx是一个高性能的HTTP和反向代理服务器,也是一个通用的TCP/UDP代理服务器,最初由俄罗斯人Igor Sysoev编写 nginx现在几乎是众多大型网站的必用技术,大多数情况下,我们不需要亲自去配置它,但是了解它在应用程序中所担任的角色,以及如何解决这些问题是非常必要的。 正向代理与反向代理 代理