Nginx配置文件的结构
Nginx的配置文件一般位于Nginx安装目录下的conf目录下,文件以block组织起来。每一个block用一组“{}”来表示。block可以分为几个层次。最高层为main指令所在位置。main指令下面有Events、HTTP等层级;HTTP层又包含server层;server层中又包含localtion层,且一个server中可以有多个localtion。
配置与调试Nginx
在Nginx的配置文件nginx.conf中,可以看到Nginx的配置文件主要分为4个部分:
main:全局设置,将影响所有其他设置;
server:主机设置,主要用于指定主机和端口;
upstream:负载均衡服务器设置,主要用于设置一系列后端服务器;
localtion:URL匹配特定位置设置,用于匹配网页位址;
server继承main,localtion继承server,upstream既不继承其他设置也不被其他设置继承。
Nginx全局设置
下面是对Nginx的全局属性设置:
user nobody nobody;
worker_processes 4;
error_log logs/error.log notice;
pid logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65536;
}
user:指定Nginx Worker进程运行的用户和组,默认是nobody;
worker_processes:指定开启的进程数。一般是指定与CPU数量相同的进程数;
error_log:指定全局错误日志文件。输出日志级别由高到低为:debug、info、notice、warn、error、crit;
pid:指定进程id存放文件;
worker_rlimit_nofile:绑定worker进程和CPU,内核2.4版本以上可用;
events:指定Nginx工作模式和连接上限。
use:指定工作模式,Nginx支持工作模式有:select、poll、kqueue、epoll、rtsig、/dev/poll。其中select、poll为标准工作模式,kqueue、epoll为高效工作模式,epoll用于Linux平台,kqueue用于BSD系统。一般Linux上epoll首选;
worker_connections:指定最大连接数,默认1024.最大客户端连接由worker_processes和worker_connections共同决定,为两者乘积。作为反向代理时为两者之积除以4。
需要注意的是,最大连接数受Linux进程最大打来文件限制,需要执行“ulimit -n 65535”后才生效。
HTTP服务器设置
下面对HTTP服务器相关属性进行设置
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" "