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地址


动静分离

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录 1 Nginx概述 2 使用 3 反向代理 4 负载均衡 5 重写 6 Nginx的其他用法 ...
    小小千千阅读 3,704评论 0 0
  • I/O模型Nginx介绍Nginx的安装和目录结构Nginx的配置Nginx的编译安装 一、I/O模型 (一)I/...
    哈喽别样阅读 4,394评论 0 4
  • 上一篇《WEB请求处理一:浏览器请求发起处理》,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建...
    七寸知架构阅读 81,509评论 21 356
  • Nginx简介 解决基于进程模型产生的C10K问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万的现...
    魏镇坪阅读 6,323评论 0 9
  • Nginx进阶   Nginx主要作用:隐藏真实服务器信息内容,用户在请求的永远是nginx监听的端口,不会访问到...
    hang1720阅读 3,610评论 0 0

友情链接更多精彩内容