Nginx配置文件详解(nginx.conf)

1、配置文件结构

/**
* main :主要控制Nginx子进程所属的用户和用户组,派生子进程数,错误日志位置与级别,pid位置,子进程优先级,
* 进程对应CPU,进程能够打开的文件描述符数目
*/
// 配置nginx的工作进程数,一般设为CPU总核数或者总核数的两倍
worker_processes  2;

/**
* 控制 Nginx处理链接的方式
*/
events {
        // 配置Nginx允许单个进程并发连接的最大请求数
        worker_connections  1024;
}

/**
* Nginx处理http请求的主要配置块,大多数配置都在这里面进行
*/
http {

    // 引入配置文件,这个是相对路径,也可以使用绝对路径
    include       mime.types;
    
    // 设置默认文件类型
    default_type  application/octet-stream;

    // 默认值为on,表示开启高效文件传输模式
    sendfile        on;

    // 设置长链接超时时间(单位:秒)
    keepalive_timeout  65;

    /**
    * Nginx中主机的配置块,可用于配置多个虚拟主机
    */
    server {
        // 监听端口,默认监听80端口
        listen       80;
        
        // 设置主机域名
        server_name  gyh.com;

      /**
      * server中对应目录级别的控制块,可以有多个
      * 此 location配置是配置的vue打包的项目
      */
      location {
             // 设置主机站点根目录地址
             // root   html;
             root     E:/VSCodeProjects/Meteor_js/dist;
              try_files $uri $uri/ @router;
              // 指定默认索引文件
              index  index.html index.htm;
      }
      
      /**
      * 用作负载均衡配置
      */
      location ^~ /meteor {
          proxy_pass    http://127.0.0.1:8090/meteor;
      }

      // 自定义错误页面
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
            root   html;
      }
   }
}

2、访问控制

2.1 访问权限

  • 禁止所有用户访问

在 server或http 块中添加 "deny all;"指令,可以禁止所有用户访问

server {
      listen       80;
      server_name  gyh.com;
      deny all;
}
  • 只允许指定用户访问

allow允许访问关键字(后面可以跟 all 表示允许全部访问)

server {
      listen       80;
      server_name  gyh.com;
      allow 192.168.78.126;
      deny all;
}

* 不同层的优先级:内层块中的指令 > 外层块中的指令
* 同层的优先级:前面指令 > 后面指令

2.2 location 前缀配置

前缀 说明
= 根据其后的指定模式进行精准匹配,完全一致才能执行后面的指令快
~ 使用正则表达式完成 location 的匹配,区分大小写
~* 使用正则表达式完成location 的匹配,不区分大小
^~ 不使用正则表达式,完成以指定模式开头的location匹配
@ 用于定义一个location块,且该块不能被外部客户端所访问,只能被Nginx内部配置指令所访问

你可能感兴趣的:(Nginx配置文件详解(nginx.conf))