ngnx高级知识

在centos上安装jdk,yum -y list jdk 查看一下,之后yum -y install 查看有的,右击, java -sersion查看安装后的版本

安装tomcat 先用 yum search tomcat 查询那些可以安装

动静分离

静态资源最好放放在一个目录下,如果不大放在程序目录下

通过匹配可以找出哪些是动态访问和静态访问,以jsp,php等结尾的一般为动态资源

nginx深度学习篇

动静分离

通过中间件把动态请求和静态请求分离,减少不必要的请求消耗,有些请求页面不需要计算的

对于客户端可以减少请求延时

ngnx高级知识这样的请求消耗很大

ngnx高级知识

Nginx的rewrite规则

实现url重写及重定向

使用场景:

1.url访问跳转,支持开发设计(页面跳转,兼容性开发,展示效果)

2.seo优化

3.维护,后台维护,流量转发

3.安全

语法:rewrite regex//正则表达式 peplacement[flag]//替换的东西 flag是标识

context:server,location,if

例:rewrite ^(.*)$/pages/maintain.html break

ngnx高级知识

ngnx高级知识$表示结尾打错了

ngnx高级知识不是去匹配

ngnx高级知识

flag

ngnx高级知识浏览器会永远记住永久性

last还会重定向一次,break立马结束

ngnx高级知识

!-f $request_filename//表示是否有这个页面路径

Rewrite规则优先级 显示server 在HTTP,最后location

nginx高级模块

介绍一些理解难度较高的Nginx模块

secure_link_module模块

1.远远高级于前面学习的防盗链,客户访问

一。定制并应许检查请求的链接的真实性以及保护资源未经授权访问

二限制链接生效周期

配置语法,secure_link expression//表达式;secure_link_md5 expression;

ngnx高级知识ngnx高级知识

例:

ngnx高级知识客户端进行加密,跟请求过来的匹配,如果相同就没问题,imooc代表家没问,只有在服务端是明文状态

geoip_module模块

基于ip地址匹配MaxMind GeoIP二进制文件,读取ip所在的地域信息

yum install naginx-module-geoip快速下载安装(区分国内国外),也可以基于国内城市地域做http规则

会安装在/etc/nginx/modules/

因为geoip是基于maxmind里数据表格文件定义的,所以需要下载maxmind文件

ngnx高级知识一个国家一个城市,解压

在conf文件中用ngnx高级知识来读取那两个文件

remote_addr表示访问的信息,ngnx高级知识这样就会吐出该ip的信息country国家

HTTPS服务

http:数据不安全,没有加密,容易被盗用,数据内容劫持串改

对称加密:发送方加密,接收方解密,**是一样的

非对称加密:发送方加密,接收方解密,**不是一样的,公钥,和私钥

https加密原理

ngnx高级知识

ngnx高级知识

生成**和CA签名证书

查看自己的服务器有没有OpenSSL

用openssl version查看

在Nginx上用nginx -V查看有没有with-http-ssl-module这个模块

首先用openssl生成秘钥,通过秘钥生成ca证书的签名文件csr文件,之后把秘钥和csl文件一并打包发送给对应的签名机构利用你公司的域名,相关机构等信息进行ca证书签名,得到ca签名证书

步骤一:生成key秘钥

步骤二:生成证书签名请求文件(csr文件)

步骤三,生成证书签名文件(CA文件)

openssl genrsa -idea//对称加密算法 -out//key文件  jesonc.key 1024 // 加密位数,回车后输入密码,一定要记住

生成一个文件步骤一完成

步骤二openssl req -new -key jesonc.key -out jesonc.csr//把步骤一生成的key文件out成一个csr文件(请求文件),需要输入刚刚密码,填写相关信息。步骤二完成。

ngnx高级知识

注意证书过期时间,-days//默认一个月,肯定不行3650十年 -in加入,out成一个crt文件输入密码生成ca签证

有了签名文件就可以来配置https服务了

ssl 表示是否开启ssl服务请求响应

ssl的签名文件,ssl的签名密码文件,有了这三个就可以搭建了

监听是443

ngnx高级知识直接生成crt签名证书,不用生成csr文件

-sha256 表示自签要求的算法  -newkeyrsa:2048 表示位数                    //上面的要输入密码,这个不用因为这个价了keyout会生成一个新的key文件和crt文件

ngnx高级知识

ngnx高级知识这个可以通过拷贝的方式去掉保护码

https服务优化

因为它是在http之前建立ssl握手,论证就多出了一个连接,论证就会会消耗服务端cpu资源和io资源的 ,性能没有http高。

方法一,**keepalive长连接,能处理更多请求,减少请求

方法二。设置ssl session缓存

在server中设置keepalive_timeout   更长 和  ssl_session_cache 共享缓存更大些

Nginx与lua开发

在企业在代码迭代升级的时候往往需要让客户感知,让错误减少,就需要结合lua实现代码灰色发布

Nginx+Lua优势

充分的结合Nginx的并发处理epoll优势和lua的轻量实现简单的功能高并发场景  epoll是处理大批量文件 socket槽

Nginx内核是epoll模型,非阻塞io的方式,快速争强访问并发

安装lua

yum install lua

敲lua就能进入解释器环境,可以print(。。。)输出

或者也可以用脚本文件书写,chmod a+rx ./test.lua给与对于可执行的环境,执行的权限,之后执行./test.lua就好了

注释:--行注释,--[[...]]块注释

变量写法很多种 直接赋值。。。

布尔只有nil和false 数字0,空字符全是true

没有特殊说明全是全局变量,前面加log就是局部变量

ngnx高级知识ngnx高级知识ngnx高级知识~=  表示不等于

io.read表示从终端读取客户输入的数据,字符串拼接“..”,ngnx高级知识