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内部配置指令所访问 |