发布时间:2018-12-13 17:33:00编辑:丝画阁阅读(1199)
来源:https://blog.csdn.net/zdplife/article/details/79563060
Nginx是俄罗斯人Igor Sysoev基于C语言编写的十分轻量级的HTTP服务器,它主要有以下特点:
nginx如何配置?
Nginx的配置文件默认存放路径是etc/nginx/nginx.conf,可以在Nginx启动时添加参数–conf-path=PATH来更改nginx.conf文件的存放路径。nginx.conf中的配置信息主要包含以下五个部分:
以上每部分包含若干个条指令,他们之间的关系是:server继承main,location继承server,main部分设置的指令将影响其它所有部分的设置,server部分的设置将影响到location部分的设置。upstream既不会继承指令也不会被继承,它有自己的特殊指令,不需要在其他地方的应用。
nginx中location部分url如何匹配?
location主要是匹配url中除去server_name(主机名)后的部分,其中关于url的匹配规则有以下几种:
对于上述五类匹配,它们之间的匹配顺序和优先级关系如下:
下面是我设置的几个location,并测试和验证以上匹配规则:
location用例测试:
nginx中rewrite命令如何重写url?
rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。rewrite只能放在server{},location{}中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如:
http://dev.zdp.com/a/we/index.php?id=1&u=str => rewrite只能对/a/we/index.php部分重写
rewrite的执行顺序
执行server块的rewrite指令;
执行location匹配;
执行选定的location中的rewrite指令,如果location中rewrite指令没有break的flag,则会根据当前rewrite路径重新匹配location;
如果其中某步URI被重写,则重新循环执行1-3,直到找到真实存在的文件,循环最多不会超过10次;
rewrite的flag标志
last: 停止处理当前location中的ngxhttprewritemodule指令集(rewrite,return等),并开始重新搜索与更改后的URI相匹配的location
break : 停止处理当前location中的ngxhttprewritemodule指令集(rewrite,return等),不会重新搜索
redirect : 返回302临时重定向,地址栏会显示跳转后的地址
permanent : 返回301永久重定向,地址栏会显示跳转后的地址
default: 默认标志,继续会处理当前location中的ngxhttprewrite_module指令集(rewrite,return等),如果没有return,会开始重新搜索与更改后的URI相匹配的location
nginx中if判断如何使用?
只是上面的简单重写很多时候满足不了需求,比如需要判断当文件不存在时、当路径包含xx时等条件,则需要用到if
Nginx中if语法为:if(condition){…},对给定的条件condition进行判断。如果为真,大括号内命令将被执行
if判断规则
if使用举例
if条件中一般会使用到一些变量,这些变量有些是用户定义的,有些是系统本身存在的,关于变量相关内容请看下文[Nginx中如何使用变量?]
nginx变量如何使用?
Nginx也可以使用变量,变量分为系统变量和自定义变量
变量特点
自定义变量
自定义变量通过set命令初始化和赋值,变量名前需要加$符号作为区分
nginx中一些常用的命令
关键字:
本站部分内容来源网络及网友上传,本站未必能一一鉴别其是否为公共版权或其版权归属,如果您认为侵犯您的权利,本站将表示非常抱歉!
请您速联系本站,本站一经核实,立即删除。删文删帖联系【2789291421@qq.com】