rewrite示例-自动跳转https

示例1:自动把首页的http转化成https
location / {
root /data/nginx/pc/html;
index index.html;
if ( $scheme = http ) {
rewrite / https://www.xxxpc.net/;
}
}
当你访问网站首页时,进行判断;当协议是http时,则进行rewrite重写把http://www.xxxpc.net重写成https://www.xxxpc.net;rewrite必须写在判断里面,如果不加判断条件,把http转化成https之后,还会继续循环,继续把https还转换至https;如此循环10次,直到浏览器显示重定向过多,进行报错为止 示例2:当进入登录界面时,自动跳转为https
location /login {
root /data/nginx/pc/html;
index index.html;
if ( $scheme = http ) {
rewrite / https://www.xxxpc.net/login permanent;
}
auth_basic "input password";
auth_basic_user_file /apps/nginx/conf/.htpasswd;
}
必须先把http转换成https之后,才可以出现登录界面,这样输入的用户名和密码才是加密的;判断必须在认证用户名密码之前进行判断重写

rewrite判断文件是否存在

location / {
root /data/nginx/pc/html;
index index.html;
if ( !-f $request_filename ) {
rewrite (.*) http://www.xxxpc.net/index.html;
}
}
当访问网站/下的资源时先做判断,如果访问/下的资源不存在,则自动重写到网站的首页

Nginx防盗链

防盗链基于客户端携带的referer实现,referer是记录打开一个页面之前记录是从哪个页面跳转过来的标记信息,如果别人只链接了自己网站图片或某个单独的资源,而不是打开了网站的整个页面,这就是盗链,referer就是之前的那个网站域名,正常的referer信息有以下几种:

none:请求报文首部没有referer首部,比如用户直接在浏览器输入域名访问web网站,就没有referer信息。
blocked:请求报文有referer首部,但无有效值,比如为空。
server_names:referer首部中包含本主机名及即nginx监听的server_name。
arbitrary_string:自定义指定字符串,但可使用*作通配符。
regular expression:被指定的正则表达式模式匹配到的字符串,要使用~开头,例如:~.*\.magedu\.com。 基于访问安全考虑,nginx支持通过ungx_http_referer_module模块检查访问请求的referer信息是否有效实现防盗链功能
location /images {
root /data/nginx/pc;
valid_referers none blocked server_names ~\.google\. *.baidu.com *.biying.com; #当访问/images下的资源时,只有指定的这些才可以访问
if ( $invalid_referer ) { #如果访问资源的网站不是从上面指定的搜索引擎跳转过来的,则拒绝访问,并且返回状态码403
return 403;
}
}
盗链是被人网站的资源不是指定的他本地资源,而是指定的是其他人网站的链接,占用别人的存储和带宽为自己办事;通过referer来判断,referer是指从哪个网站跳转过来的;如果是百度的话,说明他是百度搜索本域名过来,是合法的;如果没有referer信息,说明他是用浏览器输入域名访问的,也是合法的;如果是从一个未知的网站跳转过来的,就说明是盗链资源,可以通过referer信息判断,然后再进行相关的配置操作。
防盗链一般用于/images(存放图片)和/static(存放静态资源)这两个location中。

nginx之rewrite及防盗链的更多相关文章

  1. Nginx的优化与防盗链

    Nginx的优化与防盗链 1.隐藏版本号 2.修改用户与组 3.缓存时间 4.日志切割 5.连接超时 6.更改进程数 7.配置网页压缩 8.配置防盗链 9.fpm参数优化 1.隐藏版本号: 可以使用 ...

  2. nginx的优化和防盗链

    nginx的优化和防盗链 目录 nginx的优化和防盗链 一.nginx的优化 1. 隐藏版本号 (1)隐藏版本号的原因 (2)查看版本号的方法 (3)隐藏方法一:修改配置文件 (4)隐藏方法二:修改 ...

  3. Nginx目录保护、防盗链、限速及多域名处理

    http://www.opsers.org/server/nginx-directory-protection-anti-hotlinking-processing-speed-and-multi-d ...

  4. Nginx服务器的图片防盗链

    全站的防盗链方法 在/usr/local/webserver/nginx/conf//vhost/xxxx.conf文件要添加防盗链的server段里添加下面的代码: location ~ .*\.( ...

  5. Nginx缓存功能、防盗链、URL重写

    nginx做为反向代理时,能够将来自upstream的响应缓存至本地,并在后续的客户端请求同样内容时直接从本地构造响应报文. nginx的缓存数据结构: 共享内存:存储键和缓存对象元数据 磁盘空间:存 ...

  6. Nginx详解十三:Nginx场景实践篇之防盗链

    防盗链: 目的:防止资源被盗用 防盗链设置思路 首要方式:区别哪些请求是非正常的用户请求 基于http_refer防盗链配置模块(判断refer(上一步的链接)信息是否为允许访问的网站) 配置语法:v ...

  7. nginx跨域、防盗链、压缩等小功能详解

    原文链接:http://www.studyshare.cn/software/details/1173/0 一.跨域 跨域由来,是因为W3C组织制定的浏览器安全规范,不允许一个域名内的网站在没有别的域 ...

  8. Nginx 配置静态资源防盗链

    # 什么是静态资源盗链: # 你服务器上的一张图片,127.0.0.1/images/a.png # 别人的html页面可以直接通过<img src="127.0.0.1/images ...

  9. IIS URL Rewrite Module防盗链规则配置方法

    IIS版本:IIS 7.5 URL Rewrite组件:IIS URL Rewrite Module(http://www.iis.net/downloads/microsoft/url-rewrit ...

随机推荐

  1. 更新.net core 3.0,dotnet ef命令无法使用的解决办法

    之前项目采用.net core 2.2 实现,今天更新vs2019,系统.net core也被升级到3.0,在cmd中使用dotnet ef命令出现 “无法执行,因为找不到指定的命令或文件.可能的原因 ...

  2. NVIDIA-docker Cheatsheet

    TensorFlow Docker requirements Install Docker on your local host machine. For GPU support on Linux,  ...

  3. 英语fraunce法兰西

    fraunce  外文词汇,中文翻译为代指法兰西(地名) 中文名:法兰西 外文名:fraunce 目录 释义 Fraunce 读音:英 [frɑ:ns] 美 [fræns] Noun(名词) 1. ...

  4. idea中导入Maven项目,但是没有Maven Dependencies,且没有pom

    1. 可以复制其他项目的类似的pom.xml文件复制到当前项目下 2. 导入此项目为maven项目 3. 配置相应的maven环境 4. 如果此时的Application.class中的main方法没 ...

  5. Golang: 读写之外的其他文件操作

    在上一篇文章中,我们介绍了常用的文件读写操作,今天接着来研究一下,除了读写以外的其他常见文件操作. 一.创建目录: package main import ( "fmt" &quo ...

  6. Linux 系统管理 : last 命令详解

    原文 last命令用于显示用户最近登录信息.单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来 语法 last(选项)(参数) 选项 ...

  7. JVM 入门指南

    一.什么是JVM? JVM: JVM是Java Virtual Machine的缩写,中文翻译为Java虚拟机.JVM 可以看作一台抽象的计算机,如同真实的计算机一样,它有自己的指令集和各种运行时区域 ...

  8. 【转】UItraEdit破解

      安装UltraEdit(一路下一步,无难点)成功后,打开软件弹出如下使用模式提示信息.   关掉UltraEdit软件,同时  断本机网络.重新打开UltraEdit软件:   点击[输入许可证密 ...

  9. 大数据:Hadoop(HDFS 读写数据流程及优缺点)

    一.HDFS 写数据流程 写的过程: CLIENT(客户端):用来发起读写请求,并拆分文件成多个 Block: NAMENODE:全局的协调和把控所有的请求,提供 Block 存放在 DataNode ...

  10. 数据科学:pd.DataFrame.drop()

    一.功能 删除集合中的整行或整列: 二.格式 df.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=Fa ...