1、配置文件可以看做是nginx的灵魂,nginx服务在启动时会读取配置文件,而后续几乎一切动作行为都是按照配置文件中的指令进行的
#user nobody;
worker_processes 8;
error_log logs/error.log;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
location / {
root /home/yefeng/www;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
以上为一个纯净的nginx的配置文件、nginx的配置文件是以block的形式组织的,一个block通常使用大括号{}表示。block分为几个层级,整个配置文件为main层级,这是最大的层级;在main层级下可以有event、http等层级,而http中又会有server block,server block中可以包含location block.
每个层级可以有自己的指令,例如worker_processes是一个main层级的指令,它指定nginx服务的worker进程数量。有的指令只能在一个层级中配置,如worker_processes只能存在于main中,而有的指令可以存在于多个层级,在这种情况下,子block会继承父block的配置,同事如果子block配置了与父block不同的指令,则会覆盖掉父block的配置。指令的格式是“指令名 参数1 参数2.....参数N;”注意参数间可用任意数量空格分割,最后要加分号。
在开发nginx HTTP拓展模块过程中,需要特别注意的是main、server、location三个层级,因为拓展模块通常允许指定新的配置命令在这三个层级中
一般来说,一个server block表示一个host,而里面的一个location则表示一个路由映射规则,这两个block可以说是http配置的核心。