默认配置指令
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
以上是一个完整的默认 nginx 配置文件的展示。
指令 | 说名 |
---|---|
worker_processes | 配置 nginx 的工作进程数,一般设为 CPU 总核数或者总核数的 2 倍 |
worker_connections | 配置 nginx 允许单个进程并发连接的最大请求数 |
include | 引入配置文件 |
default_type | 设置默认文件类型 |
sendfile | 默认为 on ,表示开启高效的文件传输模式 |
keepalive_timeout | 设置长连接超时时间 ( 单位: s) |
listen | 监听端口 |
server_name | 设置主机域名 |
root | 设置主机站点根目录地址 |
index | 指定默认索引文件 |
error_page | 自定义错误页面 |
events | 控制 nginx 处理连接方式 |
http | nginx 处理 http 请求的主要配置块,大多数配置都在这里进行 |
server | nginx 主机配置块,用于配置多个虚拟主机 |
location | server 中对应目录级别的控制块,可以有多个 |
server 和 location 的区别
server 是用来配置虚拟主机的,我们可以理解成一个可访问的域名(包括子域名)是一台虚拟主机,比如,www.xiaobinqt.cn 和 www.blog.xiaobinqt.cn 这 2 个可访问的域名可以是 2 台虚拟主机。
location 块是在 server 中存在的,是来实现复杂的访问控制的。比如禁止访问虚拟主机(网站根目录)下 auth 目录中以 .html 结尾的文件,就可以在 server 块中写一个这样的 location 块:
location ~^/auth/.*\.html$ {
deny all;
}
那么访问 www.xiaobinqt.cn/auth/xxx.html 或是 www.xiaobinqt.cn/auth/bbb/xxx.html 都是不允许的,都是显示 403 Forbidden。