nginx

Nginx

server_name匹配规则:

  1. 查看http请求头里的url地址,因为多个url可以解析为同一个ip。

  2. 先精准,后头通配符,再尾通配符,最后正则

    1. 通配符:*.mmban.comwww.mmban.*,感觉很少会用尾通配符。
    2. 正则匹配:server_name ~^[0-9]+\.mmban\.com$;~表示后面解析为正则,^表示开头$表示结尾
  3. 没有匹配到则匹配第一个server。

    1. 这点非常关键,见下面的例子:

    2. server {
          listen 80;
          server_name localhost;
      }
      
      1
      2
      3
      4
      5

      localhost:返回index

      yhzd.xyz:返回index

      server { listen 80; server_name localhost; location / { root /root/data #此处禁止访问,会返回403 } } server { listen 80; server_name localhost; #两条相同的规则,nginx会弹warning,不用管他 }
      1
      2
      3
      4
      5

      localhost:返回403

      yhzd.xyz:返回403

      server { listen 80; server_name localhost; location / { root /root/data #此处禁止访问,会返回403 } } server { listen 80; server_name yhzd.xyz; }

      localhost:返回403

      yhzd.xyz:返回index


域名解析

泛域名解析:使用通配符的域名解析:*.mmban.com解析为一个ip


全局配置:

  1. worker_processes:worker进程的数量,一般不超过cpu内核数量
  2. events:
    1. worker_connections:每一个worker进程最大的连接数量

http配置:

  1. include:将其他文件包含进来,意思是直接将include的文件全部复制进来,替换掉这条include语句
    1. mime.types:该文件定义了如何向用户的浏览器传递发送数据的数据类型,对方浏览器根据类型做出反应,例如是应用类型的弹出下载框,视频类型的在网页中展示等等。
      1. .mp4发送为video/mp4
      2. .exe发送数据类型为application/octet-stream(八比特流)
  2. default_type:没有在mime.types中包含的类型,统一定义为的默认类型,默认是application/octet-stream
  3. sendfile:发送文件的方式,为off时不读取到内存中再调用网络接口,而直接通过网络接口从磁盘中读取文件,减少一次磁盘到内存的拷贝。
  4. server虚拟主机

location配置:

匹配规则:

匹配URL中域名后面的部分,例如https://www.bilibili.com/video/BV1yS4y1N76R/中匹配/video/BV1yS4y1N76R/

1.

root参数:

  1. 相对路径:例如root html,不以/开头解析为相对路径,相对于nginx的安装目录,解析为:/usr/share/nginx/html
  2. 绝对路径:例如root /usr/share/html,以/开头解析为绝对路径

index参数:


一份简单够用的 Nginx Location 配置讲解 - 掘金 (juejin.cn)

不能使用root下的目录作为网络服务的根目录,会报错403访问拒绝,因为没有权限


是否带反斜杠:

nginx root 带斜杠与不带斜杠 nginx location 反斜杠_mob6454cc68310b的技术博客_51CTO博客

nginx中斜杠(‘/‘)总结_nginx location 斜杠-CSDN博客


默认路径:

https://blog.csdn.net/Mrzhang567/article/details/122248988