1.error_log
#......
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#......
日志有6个级别:debug|info|notice|warn|error|crit
Nginx支持将不同的虚拟主机的日志记录在不同的地方,如下示例:
http{
error_log logs/http_error.log error;
server{
server_name one;
access_log logs/one_access.log;
error_log logs/one_error.log error;
}
server{
server_name two;
access_log logs/two_access.log;
error_log logs/two_error.log error;
}
}
注意error_log off并不能关闭日志记录功能,而会将日志文件写入一个文件名为off的文件中,如果你想关闭错误日志记录功能,应使用以下配置:
error_log /dev/null crit;
2.include
你可以包含一些其他的配置文件来完成你想要的功能。
http {
#......
include mime.types;
include proxy.conf;
#......
}
0.4.4版本以后,include指令已经能够支持文件通配符:
include vhosts/*.conf;
注意:直到0.6.7版本,这个参数包含的文件相对路径随你在编译时指定的--prefix=PATH目录而决定,默认是/usr/local/nginx,如果你不想指定这个目录下的文件,请写绝对路径。0.6.7版本以后指定的文件相对路径根据nginx.conf所在的目录而决定,而不是prefix目录的路径
3.日志模块
控制nginx如何记录请求日志。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
main是日志格式的别名
4.事件模块
events {
use epoll;
worker_connections 1024;
}
use [ kqueue | rtsig | epoll | /dev/poll | select | poll | eventport ]
如果你在./configure的时候指定了不止一个事件模型,你可以通过这个参数告诉nginx你想使用哪一个事件模型,默认情况下nginx在编译时会检查最适合你系统的事件模型。
worker_connections和worker_proceses(见主模块)允许你计算理论最大连接数:
最大连接数 = worker_processes * worker_connections
在反向代理环境下:最大连接数 = worker_processes * worker_connections/4
由于浏览器默认打开2个连接到服务器,nginx使用来自相同地址池的fds(文件描述符)与前后端相连接
5.HTTP基本配置
Nginx的HTTP配置主要包括三个区块,结构如下:
http { //这个是协议级别
include mime.types;
default_type application/octet-stream;
keepalive_timeout 65;
gzip on;
server { //这个是服务器级别
listen 80;
server_name localhost;
location / { //这个是请求级别
root html;
index index.html index.htm;
}
}
}