Ningx - Note

mac2022-07-05  35

Note..

 

Mac

1. 安装

Mac:

brew install nginx

 

2. 配置

主页的文件在/usr/local/var/www 文件夹下,首页 /usr/local/var/www/index.html对应的配置文件地址在/usr/local/etc/nginx/nginx.conf

nginx //运行 nginx -s reload //重启

 

Linux环境

1. 安装

安装前需要安装gcc

yum install gcc cc

 

随便找一个版本的安装包

cd wget http://nginx.org/download/nginx-1.0.5.tar.gz tar xvfz nginx-1.0.5.tar.gz cd nginx-1.0.5

安装

./configure make make install

启动

cd /usr/local/nginx/sbin ./nginx

运行后可查询到PID

 # ps -ef | grep -i nginx root 18596 13:16 nginx: master process ./nginx nobody 18597 13:16 nginx: worker process

停止

cd /usr/local/nginx/sbin ./nginx -s stop

 

修改端口:/usr/local/etc/nginx/nginx.conf

http { server { listen <your port num>; server_name localhost; #charset koi8-r; ..... } }

本机地址:localhost:<your port num> (默认8080)

 

 

3. Location匹配规则

  1. 语法规则

location [ = | ~ | ~* | ^~ ] uri { ... } 可选修饰符 + uri location @name { ... } @用来定义一个命名location。主要用于内部重定向,不能用来处理正常的请求 = 表示精确匹配。只有请求的url路径与后面的字符串完全相等时,才会命中。~ 表示该规则是使用正则定义的,区分大小写。~* 表示该规则是使用正则定义的,不区分大小写。^~ 表示如果该符号后面的字符是最佳匹配,采用该规则,不再进行后续的查找。

2. 匹配过程

具体的匹配过程如下:

1) 先检查使用前缀字符定义的location,选择最长匹配的项并记录下来。

2)如果找到了精确匹配的location,也就是使用了=修饰符的location,结束查找,使用它的配置,没找到时进入3)。

3)然后按顺序查找使用正则定义的location,如果匹配则停止查找,使用它定义的配置,没找到时进入4)。

4)如果没有匹配的正则location,则使用前面记录的最长匹配前缀字符location。

基于以上的匹配过程,我们可以得到以下两点启示:

使用正则定义的location在配置文件中出现的顺序很重要。因为找到第一个匹配的正则后,查找就停止了,后面定义的正则就是再匹配也没有机会了。使用精确匹配可以提高查找的速度。例如经常请求/的话,可以使用=来定义location。

3. 尾部 / 重定向

location中是否带/不影响

url中,没有/时,先匹配是否有<path name>的文件,后寻找<path name>文件夹

 

4. 总结

location的配置有两种形式,前缀字符和正则。查找匹配的时候,先查找前缀字符,选择最长匹配项,再查找正则。正则的优先级高于前缀字符。

正则的查找是按照在配置文件中的顺序进行的。因此正则的顺序很重要,建议越精细的放的越靠前。

使用=精准匹配可以加快查找的顺序,如果根域名经常被访问的话建议使用=。

 

Example:

匹配规则

location = / { [ configuration A ] 精准匹配 / } location / { [ configuration B ] 后续没有合适的正则匹配时,匹配 /<your uri> } location /user/ { [ configuration C ] } location ^~ /images/ { [ configuration D ] } location ~* \.(gif|jpg|jpeg)$ { [ configuration E ] }

@

location / { try_files $uri $uri/ @custom } location @custom { # ...do something }

 

转载于:https://www.cnblogs.com/GW977/p/11543168.html

最新回复(0)