Nginx启动后的进程与配置文件格式
Nginx启动后的进程
部署Nginx时都是使用一个master进程来管理多个worker进程, 一般情况下, worker进程的数量与服务器上的CPU核心数相等。 每一个worker进程都
是繁忙的, 它们在真正地提供互联网服务, master进程则很“清闲”, 只负责监控管理worker进程。
master进程:可以是唯一的, 它仅专注于自己的纯管理工作, 为管理员提供命令行服务,包括诸如启动服务、 停止服务、 重载配置文件、 平滑升级程序等。拥有较大的权限
多个worker进程:处理互联网请求不但可以提高服务的健壮性( 一个worker进程出错后, 其他worker进程仍然可以正常提供服务) , 最重要的是, 这样可以充分利用现在常见的
SMP多核架构, 从而实现微观上真正的多核并发处理。
Nginx的配置文件格式
user nobody;
worker_processes 8;
error_log varlog/nginx/error.log error;
#pid logs/nginx.pid;
events {
use epoll;
worker_connections 50000;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr [$time_local] "$request" '
'$status $bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main buffer=32k;
…
}
块配置项由一个块配置项名和一对大括号组成,块配置项可以嵌套。 内层块直接继承外层块, 例如, 上例中, server块里的任意配置都
是基于http块里的已有配置的。 当内外层块中的配置发生冲突时, 究竟是以内层块还是外层块的配置为准, 取决于解析这个配置项的模块
用HTTP核心模块配置一个静态Web服务器
http { gzip on; upstream { … }… server { listen localhost:80; … location /webstatic { if …{…} root optwebresource; … } location ~* .(jpg|jpeg|png|jpe|gif)$ {…} } server {…} }