2021-03-27 Nginx 规则 及动静分离

nginx处理php流程

    1客户端和nginx交互

    2nginx判断路由url

    3转发请求给php-fpm

    4php-fpm 和解析器交互并解析代码,最后返回结果

nginx的配置优化

worker_process  子进程的数量 auto 自动检测 根据CPU的内核数量配置

worker_rlimit_nofile    nginx打开数量的配置Linux 默认为1024 一般配置204800

Use epoll  修改nginx的运行模式 主要有select  poll  epoll   一般都使用epoll

Worker_connections 

location命令

匹配规则-正在表达式

1.等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项。

2.^~类型表达式。一旦匹配成功,则不再查找其他匹配项。

3.正则表达式类型(~

~*)的优先级次之。如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。

4.常规字符串匹配类型。按前缀匹配。

事例:

server{

    listen 80; //监听端口

    server_name:www.ceshi.com  //监听的域名

    root  /www/bolg  //访问的文件目录

    index index.html index.htm  //默认查询的文件

    location ~ \.php${   //区分大小写 查询以.php的url 路径

            return 403;//禁止403访问

    }

    location = /index.html {   //如果url 是index.html 则跳转到百度首页

        rewrite  ^/ http:www.baidu.com last;

    }

    error_page 404 =@fallback; //如果url地址不存在 则执行跳转

    location @fallback {  //

          rewrite  ^/ http:www.baidu.com last;

    }

 }

rewrite规则模块解析


事例url:https://www.jianshu.com/writer#/notebooks?name=jack&age=10

$args   : name=jack&age=10

$document_uri  :writer#/notebooks

$host  :www.jianshu.com

$http_cookie : cookie 信息

$scheme  : tcp  utp https http

$request_method : post get

rewrite指令通过正则表达式的使用来改变URI。可以同时存在一个或者多个指令,按照顺序依次对URL进行配置和处理

参数:regex :用于匹配URI的正则表达式。

replacement:匹配成功后用于替换URI中截取内容的字符串

flag:用来设置rewrite对URI的处理行为

flag :状态   last:重新发起一个请求,给其他location进行匹配

                break:跳过当前重写,往下进行匹配

                redirect:重定向 临时重定向 302

                permanent:永久重定向 301

if指令

If 指令来支持判断,并根据条件判断结果选择不同的nginx配置,该指令可以在server块或location块中配置该指令。

Condition参数:

1. “=” 与 “!=” 比较变量和字符串是否相等

2. 正则匹配,变量与正则之间使用”~”,”~*”,”!~”或”!~*”连接,“~”表示匹配大小写,”~*”不匹配大小写

3.“-f” 与 “!-f”判断文件是否存在

4.“-d” 与 “!-d”判断目录是否存在

5.“-e” 与 “!-e”判断目录或者文件是否存在

6.“-x” 与 “!-x”判断请求的文件是否可执行使用

break 指令

break指令用来中断当前相同作用域中的其他nginx配置,与该指令处于同一作用域的nginx配置中,位于它前面的指令配置生效,位于后面的指令配置无效。

  nginx服务器在根据配置处理请求的过程中遇到该指令时,回到上一层作用域继续向下读取配置。使用范围:server块,location块,if块

return 指令

return指令用于完成对请求的处理,直接向客户端返回响应的状态代码。处于该指令后的所有nginx配置都是无效的。该指令可以在server块,location块以及if块中使用。

参数:

Code :为返回给客户端的HTTP状态代码。范围:0-999

Text:为返回给客户端的响应体内容,支持变量的使用

URL:为返回给客户端的URL地址


动静分离

你可能感兴趣的:(2021-03-27 Nginx 规则 及动静分离)