OPS Nginx 配置文件
配置文件
Nginx安装目录下,其默认的配置文件都放在conf目录中。
其中包括主配置文件nginx.conf,后续对Nginx的使用基本上都是对配置文件进行相应的修改:
$ ls /usr/local/nginx/conf/
fastcgi.conf koi-win scgi_params
fastcgi.conf.default mime.types scgi_params.default
fastcgi_params mime.types.default uwsgi_params
fastcgi_params.default nginx.conf uwsgi_params.default
koi-utf nginx.conf.default win-utf
配置文件中有很多#的注释,去掉所有以#开头的注释获得以下内容:
$ cat /usr/local/nginx/conf/nginx.conf | grep -v "^.*#"
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;
}
}
如上所示,我们可以将整个配置文件分为3大部分。
Global block
功能概述
整个global block的配置从开头起始,直到events位置结束:
worker_processes 1;
主要配置一些影响全局Nginx服务的指令。
包括运行Nginx服务器的用户、用户组允许生成的工作进程数量、进程PID存放路径、日志存储路径和类型以及配置文件引入等。
如上配置代表允许生成的工作进程数量,该数值理论上来说越大,Nginx所能承受的并发量就越高,但具体还受到硬件条件等诸多限制因素。
Events block
功能概述
events花括号中包裹的配置项,如:
events {
worker_connections 1024;
}
该区域的配置项主要影响Nginx服务与用户的网络链接。
常用的设置包括是否开启对多work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个word process可以同时支持的最大连接数等。
如上配置代表每个工作进程最大支持的链接数为1024。
该部分对Nginx性能影响较大,在实际中应当灵活进行配置。
Http block
功能概述
http block花括号中包裹的配置项,如:
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;
}
}
在其中又包含、http global block、http server block等子配置块。
http block算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
http global block
如下,这几条配置属于http global block范畴:
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
配置项包括文件引入、MIME-TYPE类型定义、日志自定义、链接超时时间、单链接请求数上限等配置。
http server block
如下,这几条配置属于http server block范畴:
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;
}
在其中又包含、http server global block、http server location block等子配置块。
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。
每个http块可以包括多个http server block,而每个http server block就相当于一个虚拟主机。而每个http server block也分为全局http server global block,以及可以同时包含多个http server location block。
1)http server global block
最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP 配置。
2)http server location block
这块的主要作用是基 Nginx服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。
提供地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。