1:Nginx.conf 文件结构
在Nginx服务器的主配置文件nginx.conf 中。包含全局配置,I/O 事件配置,HTTP配置在三大块内容,配置语句的格式为“关键字 值:”(末尾以分号表示结束)。以#开始的部分表示注释
(1):全局配置
由各种配置语句组成,不使用特定的界定标记。全局配置部分包含运行用户,工作进程数,错误日志,PID 存放位置等基本设置
- user Nginx [nginx]; //运行用户,Nginx的运行用户实际是编译时指定的Nginx,若编译时未指定则默认为nobody
- Worker processes 2;//指定Nginx 启动的工作数量,建议按照CPU数目来指定,一般和CPU 核心数相等
- Work cpu affinity 000000001 00000010 ;//为每个进程分配CPU 核心,上列中将2个进程分配 到两个CPU,当然可以写多个,或者将一个进程分配到多个CPU
- Worker rlimit nofile 102400;//这个指令是指当一个Nginx 进程打开的最多文件数目,理论应该是做多打来文件数(ulimit -n )与Nginx 进程数相除,但是Nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。(通过“ulimt -N 数值”可以修改打开的最多文件数目)
- Error log logs/error.log ;// 全局错误日志文件的位置
- Pid logs/nginx.pid //pid 文件的位置
(2):I/O事件配置
使用“events{}”界定标记,用来指定Nginx 进程的I/O 响应模型,每个进程的连接数等设置events{ use epoll //使用epoll模型,对于2.6以上的内核,建议使用epoll 模型以提高性能
worker connections 4096 ; //每个进程允许的最多连接数(默认为 1024),每个进程的连接数应根据需要来定,一般在10000以下,理论上每台Nginx 服务器的最大连接数为worker processes*worker connections ,具体还要看服务器的硬件,带宽等。
(3):HTTP配置
使用“http{}”界定标记,包含访问日志,http端口,网页目录,默认字符集,连接保持,以及虚拟主机PHP解析等一系列设置,其中大部分配置语句包含在子界定标记“server{}”内
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; #定义访问日志格式为 main
access_log logs/access.log main; #访问日志位
sendfile on; #支持文件发送(下载)
keepalive_timeout 65; #连接保持超时
server { #web服务的监听配置
listen 80; #监听地址及端口(IP:PORT)
server_name localhost; #网站名称(FQDN)
charset utf-8; #网页的默认字符集
location / { #根目录配置
root html; #网站根目录的位置安装位置的html中
index index.html index.htm; #默认首页(索引页)
}
error_page 500 502 503 504 /50x.html; #内部错误的反馈页面
location = /50x.html { #错误页面配置
root html;
}
}
}