nginx服务器安装完成后,默认安装时自带的配置文件全部存储在conf目录下,并且每个配置文件都还提供了一个以.default结尾的备份文件。其中nginx.conf是nginx默认的主配置文件,所有功能的实现都与此文件的配置相关。
配置文件结构
打开nginx.conf配置文件,从整体结构可以看出,配置文件主要分5个部分,main、events、http、server、location。
main;
events {...}
http {
server {
location {...}
}
}
各块文件结构说明如下:
- main 主要控制nginx子进程所属的用户和用户组、派生子进程数、错误日志位置与级别、pid位置、子进程优先级、进程对应CPU、进程能够打开的文件描述符数目等
- events 控制nginx处理连接的方式
- http nginx处理http请求的主要配置块,大多数配置都在这里面进行
- server nginx中主机的配置块,可用于配置多个虚拟主机
- location server中对应目录级别的控制块,可以有多个
对于嵌套块(如http、server、location)中的指令,执行的顺序为从外到内依次执行,内层块中的大部分指令会自动获取外层块指令的值作为默认值,特殊指令除外。
默认的nginx配置文件中,有很多以#开始的注释行,nginx并不会对其进行解析,这些注释行的作用主要用于解释和说明,去掉注释行,默认的配置文件整体如下
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 1,worker_processes为指令名称,1为参数。当一个指令中含有多个子指令作为参数时,需要用大括号{ }进行包裹,如events块,且大括号中的每条指令都已分号“;”结尾。
默认配置指令说明
指令 说明
worker_processes 配置nginx的工作进程数,一般设为CPU总核数或者总核数的两倍
worker_connections 配置nginx允许单个进程并发连接的最大请求数
include 用于引入配置文件
default_type 设置默认文件类型
sendfile 默认值为on,表示开启高效文件传输模式
keepalive_timeout 设置默认长连接超时时间(单位:秒)
listen 监听端口,默认监控80端口
server_name 设置主机域名
root 设置主机站点根目录地址
index 指定默认索引文件
error_page 自定义错误页面