Nginx常用的核心模块指令
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; } } }