• 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

  • 相关阅读:
    Multi-Tenancy模式,基础服务大规模扩张的时候,是应该推进了。
    Python中的tuple
    Create and Call HttpHandler in SharePoint
    各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
    BNU 34986 Football on Table
    Effective JavaScript Item 31 优先使用Object.getPrototypeOf,而不是__proto__
    POJ 3080 Blue Jeans (后缀数组)
    HDU 2586 How far away ?(LCA模板 近期公共祖先啊)
    自己主动化的在程序中显示SVN版本号
    在Mac OS X中部署Tomcat的经验
  • 原文地址:https://www.cnblogs.com/chenghu/p/15048687.html
Copyright © 2020-2023  润新知