Nginx是一个 HTTP 的 web 服务器,可以将服务器上的静态文件 (如HTML、图片等) 通过HTTP协议返回给浏览器客户端。
一、将静态网站部署到 Nginx 服务器上
1. 传输静态网站
通过 Xftp 将 ace-master 到 linux服务器 /opt/static 目录下
2. 通过首页访问
- 修改 nginx.conf 配置文件
在 server 中,通过 location 匹配访问的路径,然后转发给静态资源。
注意要以分号结尾。
- 重启 nginx 服务器
- 在浏览器中输入 http://192.168.160.133:80 进行访问
3. 通过资源名访问
- 修改 nginx.conf 配置文件
在 server 中,通过 location 匹配访问的路径,然后转发给静态资源。
- 重启 nginx 服务器
- 在浏览器中输入 http://192.168.160.133:80/ace-master 进行访问
二、location 中配置路径讲解
初次接触,可能会遇到404找不到页面的错误,主要原因是配置路径问题。
规则:ip + port 等于 root,假设 server 的配置如下:
server {
listen 80; #端口号
location / {
root /opt/static /ace; #静态文件路径
}
}
替换:
http://192.168.160.133:80/ = root = /opt/static/ace
http://192.168.160.133:80/ace = root/ace = /opt/static/ace/ace
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 通配