Nginx配置文件详解
nginx配置文件分成几块,main(全局设置)、events(工作模式)、http(http设置)、server(主机设置)、location(URL匹配)、upstream(负载均衡设置)
main
控制nginx子进程的用户组、子进程数、错误日志、pid位置等
user nobody; nginx进程用户用户及用户组
worker_processes 1; 子进程数,数量一般和cpu数量一样
error_log logs/error.log level;
定义错误日志文件,level由低到高的等级,debug,info,notice,warn,error,crit,alert,emerg,将level设定为一个值,大于或等于这个值的日志会保存到logs/error.log文件中
pid logs/nginx.pid; 进程id的存储文件位置
events
控制nginx的工作模式、连接数等
events {
use kqueue; 工作模式
worker_connections 1024; 进程的最大连接数
}
http
控制http请求的主要配置
http {
include mime.types; 设定文件的mime类型,类型定义在配置文件目录下的mime.type决定;同时和apache一样,读取其他目录下的配置文件
default_type application/octet-stream; 文件类型未定义时使用这种方式
log_format main 设置日志的格式
access_log logs/access.log main; 定义访问日志,日志格式是main
sendfile on; 开启高效文件传输模式
tcp_nopush on; 放置网络拥塞
keepalive_timeout 65; 长连接
}
server
配置多个虚拟主机等
server {
listen 80; 虚拟主机的端口
server_name localhost; 指定域名或IP,用空格隔开
root /usr/local/www; 在这个虚拟机内的根目录
index index.php index.html index.htm; 默认首页地址
charset utf-8; 网页编码格式
access_log usr/local/var/log/host.access.log main; 虚拟主机的访问日志,日志格式是main
}
location
与请求URL进行匹配,匹配成功,就通过{}中的配置处理用户请求
location / { 匹配访问根目录
root /Users/jason/www; 指定访问根目录时,虚拟主机的web目录
index index.php index.html index.htm; 默认首页地址
}
location ~ \.php$ { 正则匹配,匹配.php结尾的url
root /Users/jason/www;
fastcgi_pass 127.0.0.1:9000; php-fpm地址
}
upstream
控制反向代理和负载均衡
upstream tony9.com{ 负载均衡器的名称
ip_hash; 负载均衡调度算法
server 192.168.12.1:80;
server 192.168.12.2:80 down; down表示不参与负载均衡
server 192.168.12.3:8080 max_fails=3 fail_timeout=20s; 允许请求失败的次数为3,经历了3次请求失败后,暂停服务20秒
server 192.168.12.4:8080;
}