系统学习Nginx之深度学习

动静分离:

通过中间键将动态请求和静态请求分离。

代码实例:

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    include        fastcgi_params;
}

这里把所有以.php结尾的请求全部转发到php-fpm服务上。

rewrite规则的作用:

1.URL访问跳转,支持开发设计
2.SEO优化
3.维护(后台维护,流量转发等)
4.提高安全性

配置语法:

语法:rewrite regtx replacement [flag]; #正则表达式/路径 替换内容/路径 标识 
默认:--
层级:server,location,if

实例:
rewrite ^(.*)$ /page/maintain.html break; #匹配线上所有的URL请求,替换成/page/maintain.html,维护时使用

关于正则:
() 用于匹配括号之间的内容,通过$1、$2调用
举例:
此处输入图片的描述

flag作用:
flag作用

last,break具体区别,break会在匹配到之后立即中断,不会继续执行,而last还会继续往下匹配,如果nginx中还有location匹配到,则会执行匹配到的location的内容。

redirec 返回302临时重定向,每次会像服务器请求
permanent 返回301永久重定向,第二次不会再对服务器请求,自动重定向到相应地址

使用rewrite重定向:

rewrite规则:

规则优先级:

server块>location>选定的location中的rewrite

优雅的Rewrite规则书写:

server{
listen 80;
server_name nginx.org;
rewrite ^ http://www.nginx.org$request_uri?;
}

Nginx高级模块:

一.指定并允许检查请求的链接的真实性以及保护资源免遭未经授权的访问
二.限制链接生效周期(防止被不断下载)

配置语法:

语法:secur_link expression;
默认:--
层级:http,server,location

语法:secure_link_md5 expression; #
默认:--
层级:http,server,location

geoip_module模块:

基于IP地址匹配MaxMind GeoIP二进制文件,读取IP所在地狱信息
使用yum install nginx-moule-geoip;安装

使用场景:
1.区别国内外做HTTP访问规则
2.区别国内城市地狱做HTTP访问规则

HTTPS服务:

为什么需要HTTPS:

HTTP不安全:
1.传输数据被中间人盗用,信息泄露
2.数据内容挟持,篡改

HTTPS加密协议原理:
HTTPS协议原理

HTTPS语法配置:

语法:ssl on|off;#是否开启ssl
默认:ssl off
层级:http,server

语法:ssl_certificate file; #证书文件
默认:--
层级:http,server

语法:ssl_certificate_key file; #密码文件
默认:--
层级:http,server

HTTPS的优化:

1.激活keepalive长连接
2.设置ssl session缓存

[LUA学习工作中暂时使用不到,缓一缓]:
LUA学习:
变量:
布尔类型只有nil和false是false,数字0,空字符串(’\0’)都是true。
lua中如果没有特殊说明,都是 全局变量