Nginx基本配置语法

在Linux下每个软件都有自己的配置文件,这个文件通常是一个文本文件,每个软件的配置文件都包含特定的语法,比如PHP使用windows风格ini配置语法,sendmail使用M4处理器编译成配置文件,Nginx也有特定的语法,不过Nginx的语法非常简单

配置文件语法

#user nobody;  //#可以注释该行
worker_processes 1;  

配置指令

在第二行中声明一个指令workerprocesses,指令通常都是用分号;结束,每个指令都有唯一的作用,workerprocesses指令声明worker进程的数量,user指令声明以某个用户启动Nginx、

使用include组织文件

inlcude是一个指令他可以帮助我们很好的组织配置文件,一般我们使用他来分离站点配置文件从主配置文件中
在nginx中一般会包含以下这些类型的配置文件

Standard name     Description  
nginx.conf        Base configuration of the application.主配置文件  
mime.types        A list of file extensions and their associated MIME types.  
fastcgi.conf      FastCGI-related configuration.FastCGI相关配置  
proxy.conf        Proxy-related configuration.代理相关配置  
sites.conf        Configuration of the websites served by Nginx, also known as virtual hosts. It's recommended to create separate files for each domain.虚拟主机配置  

include指令支持通配符,也就是说可以这样包含配置文件

include conf/*.conf  

使用nginx测试配置文件

nginx -t  

指令块

如果你激活一个模块,需要指定特定的指令才可用,某些指令可在不同的指令块中重用

events {  
 worker_connections 1024;
}

比如你需要在location关闭日志

[…]
 location ^~ /admin/ {
 index index.php;
 access_log off;
 }
[…]

指令的特定语法

也许你会对以下语法感到非常困惑

rewrite ^/(.*)\.(png|jpg|gif)$ /image.php? file=$1&format=$2 last;  

在rewrite模块中允许使用高级的逻辑结构来声明指令,比如if, set, break, and return指令

指令的值

  • k or K: Kilobytes
  • m or M: Megabytes
client_max_body_size 2M; #两句是相等的  
client_max_body_size 2048k;  

时间单位

  • ms: Milliseconds
  • s: Seconds
  • m: Minutes
  • h: Hours
  • d: Days
  • w: Weeks
  • M: Months (30 days)
  • y: Years (365 days)

变量

模块也可以提供变量作为指令的值,比如http模块定义$nginxversion,可以在logformat指令中使用

[…]
location ^~ /admin/ {  
 access_log logs/main.log;
 log_format main '$pid - $nginx_version - $remote_addr';
}
[…]

有些指令是不允许使用变量

error_log logs/error-$nginx_version.log; #不可用  

字符串值

root /home/example.com/www;  
root '/home/example.com/my web pages';  

当遇到某些特殊的字符时需要使用双引号或者单单引号转义

Nginx基本模块

  • Core module: Essential features and directives such as process management and security
  • Events module: Lets you configure the inner mechanisms of the networking capabilities
  • Configuration module: Enables the inclusion mechanism

Nginx进程结构

当启动Nginx时,主进程会一直存在与内存中,并以当前用户权限启动,Main Processes本身不会处理请求,它会衍生出很多Worker Processes处理请求 nginx-process

你的欣赏是我最大的动力

Yanxiong Huang

My name is Yanxiong Huang. graduated from Nanyang middle school.Love Linux,familiar with Node.js,Docker,Serverless... and more Web technology.Contact Me:QQ 31356617;Email:huangaynxiong2013@gmail.com

guangzhou,china http://www.myfreax.com

乐在分享