Nginx是一个HTTP的web服务器,可以将服务器上的静态文件(如HTML、图片等)通过HTTP协议返回给浏览器客户端

 

1 案例:将ace-master这个静态网站部署到Nginx服务器上。

 

1.1 通过Xftp将ace-master上传到linux服务器/opt/static目录下,为了演示方便,将名字改为ace

nginx部署多个静态资源 nginx静态部署html文件_正则匹配

目的是为了通过http://192.168.235.128:80/访问

 

1.2 修改nginx.conf配置文件

nginx部署多个静态资源 nginx静态部署html文件_Nginx_02

注意要以分号结尾

 

1.3 重启Nginx 

nginx部署多个静态资源 nginx静态部署html文件_正则_03

 

1.4 在浏览器中输入http://192.168.235.128:80/进行访问

nginx部署多个静态资源 nginx静态部署html文件_Nginx_04

 

1.4  现在需要改成通过http://192.168.235.128:80/ace/访问

在server中,通过location匹配访问的路径,然后转发给静态资源

nginx部署多个静态资源 nginx静态部署html文件_Nginx_05

 

1.5  重启Nginx服务器

nginx部署多个静态资源 nginx静态部署html文件_Nginx_06

 

1.6 在浏览器中输入http://192.168.235.128:80/ace进行访问

nginx部署多个静态资源 nginx静态部署html文件_Nginx_04

 

 

2 location中配置路径讲解

初次接触:可能会遇到404找不到页面的错误,主要原因是配置路径问题;

规则:ip + port 等于 root,假设server的配置如下:

server { 
    listen 80; #端口号 
    location / { 
        root /opt/static /ace; #静态文件路径
    } 
}

替换:

http://192.168.92.128:80/ = root = /opt/static/ace
http://192.168.92.128:80/ace = root/ace = /opt/static/ace/ace

3:location匹配顺序:

在没有标识符的请求下,匹配规则如下:

1、nginx服务器首先在server块的多个location块中搜索是否有标准的uri和请求字符串匹配。如果有多个标准uri可以匹配,就匹配其中匹配度最高的一个location。

2、然后,nginx在使用location块中,正则uri和请求字符串,进行匹配。如果正则匹配成功,则结束匹配,并使用这个location处理请求;如果正则匹配失败,则使用标准uri中,匹配度最高的location。

备注:

1、如果有精确匹配,会先进行精确匹配,匹配成功,立刻返回结果。

2、普通匹配与顺序无关,因为按照匹配的长短来取匹配结果。

3、正则匹配与顺序有关,因为是从上往下匹配。(首先匹配,就结束解析过程)

4、在location中,有一种统配的location,所有的请求,都可以匹配,如下:

location  / {
  # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求
  # 但是正则和最长字符串会优先匹配
}

结合标识符,匹配顺序如下:

(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (location /)

(精确匹配)> (最长字符串匹配,但完全匹配) >(非正则匹配)>(正则匹配)>(最长字符串匹配,不完全匹配)>(location通配)