2019/05/26 nginx实现https和rewrite

在这里插入图片描述
如何再nginx中实现SSL加密
要实现https,在apache中,还有ftps
都需要有证书
这个模块用到的各种指令

在这里插入图片描述在这里插入图片描述
ssl指令就是是否启用加密,on,off
可以放在http,server这个块中进行加密
在1,15版本中过时了,
要使用,就直接在listen中加上ssl

在这里插入图片描述
1.12版本但是考虑到以后不用了,这次也不使用了
在这里插入图片描述
用listen指令来代替
在这里插入图片描述
listen+ssl,意味,监听的端口,将用加密的方式,就代替了ssl on|off
在这里插入图片描述
要选择pem的证书文件
在这里插入图片描述
私钥文件
在这里插入图片描述

此外还有ssl的协议,主流的协议是tlsv的协议
在这里插入图片描述
ssl的session解析
在这里插入图片描述
http还是https链接网页都有session的会话消息,这些就可以缓存加速访问
off不启用缓存
none是表面上支持缓存,但实际并不支持缓存
builtin 使用的openssl系统内置的缓存,因为ssl可以调用openssl对应的模块里的缓存,每个worker进程,它的ssl缓存是私有的,将来每个woker进程都有自己的缓存空间
share :多个worker共用一个session信息,共享缓存,需要起个名字,以及缓存的大小

在这里插入图片描述
默认5分钟,超时过期了
现在创建个证书,现在不搭键CA了,用自签名的证书

在这里插入图片描述
需要输入口令,相当于给私钥加入口令,下次启动服务的时候就要去输入口令
在这里插入图片描述
就生成了两个个文件
在这里插入图片描述
可以考虑把这个文件解密
在这里插入图片描述
现在就没有加密信息了
把证书复制到需要的目录下

在这里插入图片描述

现在就可以搭建网站了
在这里插入图片描述
在这里插入图片描述
检查一下语法
在这里插入图片描述
可以启动服务了
在这里插入图片描述
现在就可以通过远程客户端访问了
客户端修改hosts文件来指向192.168.30.7

在这里插入图片描述
在这里插入图片描述
默认是要验证证书的,-k可以忽略检查
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自签名证书
在这里插入图片描述
能否在一个物理服务器上搭建多个https网站,在apache上做不到,但是在nginx上可以实现
之所以可以实现,是因为支持SNI技术(服务器的名称扩展)

在这里插入图片描述‘想要实现a.com,和B.COM都用证书加密
先申请证书
可以修改makefile文件,不让输入口令

在这里插入图片描述
删除128就不是一定要提供口令了
在这里插入图片描述
私钥文件已经生成,不需要输入口令了
在这里插入图片描述
这样就生成了B.com的证书
在这里插入图片描述
两个各有各的证书
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重新加载服务
在这里插入图片描述
客户端hosts对应也要修改,才能测试
在这里插入图片描述在这里插入图片描述
这样就实现了在同一个服务器上实现多个https虚拟站点
在这里插入图片描述
可以看到证书信息
在这里插入图片描述
无效时对于这个证书时不信任的,所以不显示网页
在这里插入图片描述
现在信任自己的证书
在这里插入图片描述
客户都安调用证书文件
在这里插入图片描述
必须要通过CA的证书才有效,自签名证书无效
在这里插入图片描述
在这里插入图片描述
这个是nginx的特有功能
在这里插入图片描述
**重写地址,访问http跳转到https都是用rewrite来实现的,301,302,临时还是永久跳转
**
在这里插入图片描述
看一下官方说明
在这里插入图片描述
正则表达式,replacement 代替
要用新的url来代替旧的URL
flag标记,有四钟

在这里插入图片描述一旦匹配了last(重新开始新的循环)就类似bash里跳出循环在这里插入图片描述
break就是整个结束了,后面也不做了
在这里插入图片描述
301叫永久重定向,302临时重定向
在这里插入图片描述
在生产中经常使用到重定向代码
在这里插入图片描述


在这里插入图片描述
$1代表download/. (media变成了mp3,
$2代表.
**
在这里插入图片描述
现在想实现网站的跳转功能
在这里插入图片描述
修改配置文件
在这里插入图片描述
现在取消加密用rewrite来跳转
在这里插入图片描述
在这里插入图片描述
重新加载,看看能否实现
创建页面

在这里插入图片描述
现在就跳转了
在这里插入图片描述
但是响应状态没有变化
在这里插入图片描述
访问bbs是访问默认网站 了在这里插入图片描述
就把a。com设置为默认网站
在这里插入图片描述
两个都是默认网站就搞不清了
在这里插入图片描述
原来默认的网站就不应该使用
在这里插入图片描述
现在就可以了。访问的时候地址不变,但是实际路径确实真变 了
在这里插入图片描述
但是把/去掉了,会如何
在这里插入图片描述
301永久重定向
在这里插入图片描述
不加这个/斜杠,就代表301的移动
在这里插入图片描述
应该把斜线去掉在这里插入图片描述
把斜线去掉再试试
在这里插入图片描述
还是301,永久跳转
在这里插入图片描述
在这里插入图片描述
加上斜线
在这里插入图片描述
加上也行,只不过需要跳转一下
curl,浏览器默认是不会跳转的,需要加上-L选项

在这里插入图片描述
换个浏览器,没有/也可以进行访问
在这里插入图片描述
如果把配置文件里的斜线故意去掉的话d
加斜线和不加斜线实现的机制是不一样的
如果不加斜线/,跳转到就不止bbs了,可能会出现下面的情况了

在这里插入图片描述
只是bbs这个目录跳转就写/比较合理
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如果改成break会不会有所区别,
在这里插入图片描述
就一条,谈论不上有什么区别
在这里插入图片描述
在这里插入图片描述
redirect,就是临时重定向,对应的是302
现在是200

在这里插入图片描述
修改配置文件
在这里插入图片描述
在这里插入图片描述
头部变成了302,临时重定向
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
变成了301的永久重定向
在这里插入图片描述
当访问一个网站如果不加密的时候,想跳转到加密的网站
在这里插入图片描述
要想实现这个功能,就需要有两个网站,一个加密,一个不加密
在这里插入图片描述
但是原本是同一个网站看到的信息应该是不一样的,但是现在就是让他有效果,修改成不一样
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一般互联网公司都是用临时重定向
在这里插入图片描述
重新加载一下配置文件
在这里插入图片描述
在这里插入图片描述
想看到跳转过去的页面就加个L
在这里插入图片描述
因为加密 了还需要+k忽略证书
在这里插入图片描述
应该是i ,大I光看头了
在这里插入图片描述
能否搭建成一个虚拟网站来实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
虽然代码没有错,但是一直是死循环
在这里插入图片描述
最后提醒次数过多
这样就是语法上有错误
是因为当访问https的时候还要进行/的跳转
在这里插入图片描述
要用到一个条件判断
在这里插入图片描述
当什么条件的时候才进行跳转
访问http的时候进行,https的时候就不进行跳转了
sechma +FQDN+URL+path

在这里插入图片描述
sechma对应apache配置文件就有说明
根据http还是https来判断是否跳转

在这里插入图片描述
在这里插入图片描述
检查语法,重新加载
在这里插入图片描述
就成功了

在这里插入图片描述
现在就自动地跳转到加密的网站上了
在这里插入图片描述
在这里插入图片描述
这就是http到https的跳转
rewrite,不仅工作用的多,而且面试也经常问

在这里插入图片描述
回到之前的vhosts
在这里插入图片描述
想实现当你访问文本的时候才进行跳转到html文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
只要是text就往html跳
在这里插入图片描述
但是如果在跳转时候再定义了一个规则
~
*在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样又成了一个循环的问题
500,内部服务器错误

在这里插入图片描述
四种标签,last break redirect perament
在这里插入图片描述
查看是否有变化
在这里插入图片描述
在这里插入图片描述
还是错误,last相当于默认值
在这里插入图片描述
在这里插入图片描述
现在就好了
在这里插入图片描述
打破了结束的循环,也就不会造成循环了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
last容易造成死循环

在这里插入图片描述
redirect也属于无限次跳转在这里插入图片描述
加入跳到别的网站,也就不会死循环了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就跳转了
在这里插入图片描述
在这里插入图片描述
任何的txt文件都往这里跳转
在这里插入图片描述
看I报文头部
302临时重定向

在这里插入图片描述
面试问,河南hn跳转到henan
在这里插入图片描述
在这里插入图片描述
跳转是否记录日志
return 是返回响应码
跳转到多少,给你返回多少,也可以直接返回给你的响应码
用return 来实现当用户访问网站的时候,返回拒绝你的访问
就可以加条件来实现

在这里插入图片描述
用request_url也是可以的
在这里插入图片描述
*如果这个变量带有admin字样,就拒绝访问
~不区分大小写+正则表达式匹配

在这里插入图片描述
在这里插入图片描述
就被拒绝了
在这里插入图片描述
通过浏览器试试
在这里插入图片描述
在这里插入图片描述
即时有这个网页也是被拒绝的
在这里插入图片描述
在这里插入图片描述
看不到提示
在这里插入图片描述
现在换一个响应码
在这里插入图片描述
在这里插入图片描述
响应码可以生效只不过提示符出不来
在这里插入图片描述
也可以跳转到url里取
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
只显示404,并没有跳转,看看官方文档怎么说的
指定跳转,就要指定这些响应码才可以

在这里插入图片描述
改成307
在这里插入图片描述
现在就可以跳转了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
防盗链技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值