nginx.conf 配置文件的介绍


前言

nginx的相关文章:
Linux 部署 Nginx 的完善过程
Nginx的try_files指令详解
nginx 常用配置之 location 匹配规则


一、location

#是注释的意思,配置文件的注释这一行是不生效的。

location /ppp {
            #root   html;
            alias   html;
            index  index.html index.htm;
        }

location是匹配的意思,在浏览器中,搜索http://192.168.149.6/ppp/ooo/ttt.html,那该链接的url是/ppp/ooo/ttt.html。因为url中包含/ppp,所以能匹配上location /ppp。

都没匹配到的时候才会走 location /。

1.location匹配规则

精确匹配优先级最高,前缀匹配优先级高于普通前缀匹配。

1)= 绝对匹配

绝对匹配,即精确匹配,一个字符也不能差,优先级最高,工作中用的少

location = /abc { 
	return 900; 
	}

return”是返回状态码的意思。
curl”模拟浏览器访问,-i会返回状态码。

在这里插入图片描述

  • 验证过程:

在这里插入图片描述

127.0.0.1=localhost 本机

2)^~ 前缀匹配

前缀匹配最长优先。

location ^~ /bcd {
   return 909;
   }

在这里插入图片描述

错误用法:“^~ /mnt/”:这样就写死了,达不到前缀匹配的效果

在这里插入图片描述

  • 注意事项一般情况下,正则匹配不可以和alias一起用,否则会出现301重定向的报错,重新跳转另外一个页面。

参考文章:nginx重定向循环Nginx location + 正则表达式出现301错误
不正常的配置

location ~* /Lii {
        #location ~* /Lii/(.*)$  {
            alias /opt/Lii/;
            #alias /opt/Lii/$1;
            index index.html index.htm;
        }

在这里插入图片描述

比对报错与网页的搜索结果,找到问题的原因
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
报错的原因是
在这里插入图片描述
修改方法
在这里插入图片描述

location ~* /Lii/(.*)$  {
            alias /opt/Lii/$1;
            index index.html index.htm;
        }
location ~* /Lii/(.*html)$  {
            alias /opt/Lii/$1;
            index index.html index.htm;
        }

1、()里面的才是正则表达式。“.” 任意单个字符,“*” 匹配0次或多次,“.*” 匹配任意字符串。
2、“.*\.html===以.html结尾了”,“.” 正则有单个字符的意思。如果没加\,会被认为是单个字符匹配。所以加\,即转义,可以让他只是一个 “.” 的字符的意思。

在这里插入图片描述

3)普通匹配

location /abc {
   return 909;
   }

普通匹配和前缀匹配的匹配方式是一样,^~ 的优先级更高,即前缀匹配优先级更高。

4)~(区分大小写), ~*(不区分大小写) 正则匹配

location ~ /ccb {
return 778;
}
location ~ /CCB {
return 798;
}

在这里插入图片描述

location ~* /asw {
return 888;
}

在这里插入图片描述

2.alias和root的区别

location /ppp {
            alias   html;
            index  index.html index.htm;
        }

1、url为/ppp/ooo/ttt.html,alias的会找/usr/local/nginx/html/ooo/ttt.html
2、“alias html;”中使用了相对路径 html ,所以是在 nginx 的安装路径下,即 /usr/local/nginx/,去找html。
3、/usr/local/nginx/html//ooo/ttt.html===/usr/local/nginx/html/ooo/ttt.html

location /ppp {
            root   html/;
            index  index.html index.htm;
        }

alias和root的区别:
1、alias 只能作用在 location 中,而 root 可以存在serverhttplocation 中。
2、alias 后面必须要用 “/” 结束,否则会找不到文件,而 root 则对 ”/” 可有可无。
3、alias 是不拼接location内容。

3.index

location /mall {
             alias   /mnt/mall;
             index mall.html mall.htm;
        }

首页文件的名字可以修改。
搜索链接为http://192.168.149.6/mall,匹配到 /mall ,所以查找路径为 /mnt/mall 。“alias /mnt/mall;”中设置的是绝对路径,所以不用考虑 nginx 的安装路径。
因为链接最后是目录 mall,所以默认查找 /mnt/mall 下的 mall.html。

4.tryfiles

location /pngs/ {
           root /data/user/;
           index  mall.html mall.htm;
           try_files $uri   $uri/  /pngs/1.html; 
          }

查找规则:
1、把浏览器的访问url当做网页文件去找
2、 把浏览器的访问url当目录,去找/data/user/pngs/url下的mall.html
3、前面2个都没找到,就找最后一个url

在浏览器访问http://192.168.149.6/pngs/uuu.html的查找顺序:

  1. 找/data/user/pngs/uuu.html
  2. 如果没有uuu.html这个文件,就找url/,即/data/user/pngs/uuu.html目录下的mall.html
    只要有uuu.html目录,就会一直在第二步,一直走第二步的规则,不会到第3步。
  3. 如果没有那个目录才会走第三步:http://192.168.149.6/pngs/1.html,然后又匹配到 /pngs/ ,查找/data/user/pngs/1.html

二、server

一个server对应一个端口,对应一个网站域名。

1.log

1)如何查找报错日志的路径:

[root@test1 conf]# grep -i log nginx.conf

在这里插入图片描述

2)log配置的摆放位置

log配置放在server里面,那就对server里的每一个location生效了。
一般写在server里面,或者写http里面server以外。

在这里插入图片描述
在这里插入图片描述

3)log_format

在这里插入图片描述

test1是日志文件格式的别名,这2个是一对的。

192.168.149.1 - - [22/Dec/2023:18:07:06 +0800] "GET /package/test/ HTTP/1.1" 200 290 "http://192.168.149.6/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" "-"
192.168.149.1 - - [23/Dec/2023:03:15:54 +0800] "GET /contact/contact.html HTTP/1.1" 304 0 "http://192.168.149.6/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" "-"

log_format指定日志文件的格式:
1、$remote_addr,指客户端的ip地址。
2、[$time_local],[23/Dec/2023:14:23:43 +0800]。
3、$request,记录了客户端访问的url。

参考文章:HTTP请求方式中8种请求方法(简单介绍)

请求方式:
1、GET代表请求方法。(重点)
2、POST需要提交数据后台或者数据库,就用post方法。对已有的资源修改也可能使用post方法。(重点)
3、put方法,也会传输数据,从客户端向服务器传送的数据,取代指定的文档内容。(重点)
4、delete方法请求服务器删除指定的页面。(重点)
5、head方法获取报头、信息、数据报文。
6、options方法允许客户端查看服务器性能。

2.报错类型——状态码

  1. location匹配到了,去找index首页文件,没找到就报403
    在这里插入图片描述

  2. 一般页面文件找不到,报404

  3. 400是异常的,包括404、403、405、408、413、415。405和408是指客户端网络异常。
    在这里插入图片描述

  4. 网络是通的,调用接口是通的,状态码就是200,都是正常的。

  5. 300是重定向,一般也是正常的。

  6. 500是服务器内部错误,包括502、503、504,一般是后端服务挂了,或者说后端服务没起来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BW_doubleD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值