全局配置参数
user nginx;//使用nginx用户身份启动nginx
worker_process 10;// worker进程数,一般与cpu核心数相同。
error_log /var/log/nginx/error.log warn;// 当server中没有单独设置error_log时。
pid /var/run/nginx.pid;
events {
use /dev/poll;//使用事件模型`/dev/poll(Solaris 和Unix特有),epoll(Linux特有)`
worker_connections 2048;//一个工作进程可以接口并发的最大连接数。
}
Http Section配置
1,简介。http section的指令,用来处理http链接。
//nginx.conf文件中
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
####定义访问日志的格式。 在server中可以使用main格式。access_log /var/log/nginx/hzq.com.log main;
log_format main '$remote_addr - [$time_local] "$request" '
'$status $body_bytes_sent'
'"$http_user_agent" $request_time ';
sendfile on;
client_header_buffer_size 512k;//当客户端请求头大于1KB时,会使用缓存。
keepalive_timeout 65;
include /etc/nginx/site-enables/*.conf;//引入其他conf配置文件(主要是各个virtual server)
}
Server Section配置
1,简介
1)通过关键字server 定义的section,是一个虚拟服务器,包含在http关键字定义的section中,用来响应http请求。
不在listen中显示指定default_server, 会默认选择第一个。
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main 'xxxxx'
include /etc/nginx/site-enables/*.conf; //引入文件。`每个文件中可以单独配置server`
server {
listen 80 default_server;// `*:80, 一个服务器可能有多个公网ip,以及内网ip。` 当没有Host的header时,作为监听80的default server提供http服务。
server_name www.hzq.com www.hqq.com;//`请求头 Host ,与server_name匹配,用于route 哪一个server`
}
}
2)request中如果没有包含host字段,或者host字段不在nginx server的server_name中,会使用在该端口上监听的default_server。
匹配没有host请求头的request
server {
listen 80;
server_name "";//默认值,可不填
//配置这个server,将取代在80端口上的default_server
}
3)default_server是listen指令的参数,不同的端口可以指定不同的default_server。
server {
listen 80 default_server;
server_name www.hzq.com www.hqq.com
//...
}
server {
listen 210.73.xxx.xxx:9876 default_server;
server_name "";
location / {
}
}
2,nginx通过自身的监听端口、request的host请求头、server_name指令来决定request route到哪一个server。
3,server配置注意点。
1)listen指令的格式
listen ip:port default_server; // 监听的是自己的ip(一个服务器可以有多个ip)和自己的端口。
listen port default_server;
2)server_name .hzq.com; //可以匹配子域和域本身*.hzq.com和hzq.com