Nginx目录结构,配置详解

Nginx目录结构有哪些?

  [root@localhost ~]# tree /usr/local/nginx
    /usr/local/nginx
    ├── client_body_temp
    ├── conf                             # Nginx所有配置文件的目录
    │   ├── fastcgi.conf                 # fastcgi相关参数的配置文件
    │   ├── fastcgi.conf.default         # fastcgi.conf的原始备份文件
    │   ├── fastcgi_params               # fastcgi的参数文件
    │   ├── fastcgi_params.default       
    │   ├── koi-utf
    │   ├── koi-win
    │   ├── mime.types                   # 媒体类型
    │   ├── mime.types.default
    │   ├── nginx.conf                   # Nginx主配置文件
    │   ├── nginx.conf.default
    │   ├── scgi_params                  # scgi相关参数文件
    │   ├── scgi_params.default  
    │   ├── uwsgi_params                 # uwsgi相关参数文件
    │   ├── uwsgi_params.default
    │   └── win-utf
    ├── fastcgi_temp                     # fastcgi临时数据目录
    ├── html                             # Nginx默认站点目录
    │   ├── 50x.html                     # 错误页面优雅替代显示文件,例如当出现502错误时会调用此页面
    │   └── index.html                   # 默认的首页文件
    ├── logs                             # Nginx日志目录
    │   ├── access.log                   # 访问日志文件
    │   ├── error.log                    # 错误日志文件
    │   └── nginx.pid                    # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
    ├── proxy_temp                       # 临时目录
    ├── sbin                             # Nginx命令目录
    │   └── nginx                        # Nginx的启动命令
    ├── scgi_temp                        # 临时目录
    └── uwsgi_temp                       # 临时目录
    Java极客,javajike.com

Nginx配置文件nginx.conf有哪些属性模块?

worker_processes  1;                              # worker进程的数量
events {                                          # 事件区块开始
    worker_connections  1024;                     # 每个worker进程支持的最大连接数
}                                                 # 事件区块结束
http {                                            # HTTP区块开始
    include       mime.types;                     # Nginx支持的媒体类型库文件
    default_type  application/octet-stream;       # 默认的媒体类型
    sendfile        on;                           # 开启高效传输模式
    keepalive_timeout  65;                        # 连接超时
    server {                                      # 第一个Server区块开始,表示一个独立的虚拟主机站点
        listen       80;                          # 提供服务的端口,默认80
        server_name  localhost;                   # 提供服务的域名主机名
        location / {                              # 第一个location区块开始
            root   html;                          # 站点的根目录,相当于Nginx的安装目录
            index  index.html index.htm;          # 默认的首页文件,多个用空格分开
        }                                         # 第一个location区块结果
        error_page   500502503504  /50x.html;     # 出现对应的http状态码时,使用50x.html回应客户
        location = /50x.html {                    # location区块开始,访问50x.html
            root   html;                          # 指定对应的站点目录为html
        }
    }
    ......
    Java极客,javajike.com
}

location的作用是什么?

  • location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。
匹配符匹配规则优先级
= 精确匹配 1
^~ 以某个字符串开头 2
~ 区分大小写的正则匹配 3
~* 不区分大小写的正则匹配 4
!~ 区分大小写不匹配的正则 5
!~* 不区分大小写不匹配的正则 6
/ 通用匹配,任何请求都会匹配到 7

注意:~ 代表自己输入的英文字母

Location正则案例:

      #优先级1,精确匹配,根路径
        location =/ {
            return 400;
        }
    
        #优先级2,以某个字符串开头,以av开头的,优先匹配这里,区分大小写
        location ^~ /av {
           root /data/av/;
        }
    
        #优先级3,区分大小写的正则匹配,匹配/media*****路径
        location ~ /media {
              alias /data/static/;
        }
    
        #优先级4 ,不区分大小写的正则匹配,所有的****.jpg|gif|png 都走这里
        location ~* .*.(jpg|gif|png|js|css)$ {
           root  /data/av/;
        }
    
        #优先7,通用匹配
        location / {
            return 403;
        }
    Java极客,javajike.com

原文地址:https://www.fangzhipeng.com/javainterview/2021/05/27/186a96b.html

原文地址:https://www.cnblogs.com/chenghu/p/15048687.html