配置示例
#用户和分组
user www www;
#指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍)
worker_processes 4;
#指定错误日志的存放路径,日志级别选项:[debug|info|notice|warn|error|crit]
error_log /data/local/logs/nginx_error.log crit;
#pid存放路径
pid /usr/local/webserver/nginx/nginx.pid;
#指定文件描述符数量
worker_rlimit_nofile 51200;
events
{
#使用网络I/O模型,Linux采用epoll,FreeBSD使用kqueue
use epoll;
#允许的连接数
worker_connections 51200;
}
http
{
include mime.types;
#指定为MIME类型
default_type application/octet-stream;#任意二进制文件,更多类型参见http://baike.baidu.com/link?url=xogz2-UszRBYWARYEEdVYxW9xHDRZJ_SseuOhpnUhiy0XfMlIWi41TyAtcJDOxN3
#设置使用的字符集,若一个网站有多中字符集,不要随便设置,应在html中通过meta设定
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 432k;
#设置客户端能够上传的文件大小
client_max_body_size 8m;
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件
#对于普通应用,必须设为 on,
#如果用来进行下载等应用磁盘IO重负载应用源码天空,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay oon;
gzip on;#开启压缩http返回数据
gzip_min_lenght 1k;
gzip_buffers 416k;
gzip_http_version 1.1;
server
{
.....
}
}
虚拟机
虚拟机:把一台运行在因特网上的服务器分成一台台“虚拟”的主机,每台虚拟主机可以是独立的网站,可以有独立的域名,具有完整的Internet服务器功能,同一台机器上的虚拟机之间是完全独立的。
http
{
server
{
listen 80 default;
#可以是域名或ip
server_name _ *;
#访问日志存放的路径以及日志格式
access_log logs/default.access.log combined
location / {
#默认首页文件,从左到右
index index.html index.htm;
#网页文件存放的位置
root /data/html/doc
}
}
}
nginx日志文件与切割
与Nginx日志相关的指令:log_format,设置日志的格式和access_log,指定日志文件的存放路径、格式和缓存大小。
log_format设置日志格式:log_format name format [format ...]
log_format有一个默认的,无序设置的combined日志格式。
$remote_addr和$http_x_forwarded_for用于记录Ip地址,区别在于如nginx位于反向代理之后,$remote_addr无法直接获取,$http_x_forwarded_for则可以。$time_local记录访问时间和时区。
access_log指定日志文件存放路径:access_log path [format [buffer=size| off]]
path日志文件路径,format使用log_format指定的日志格式名称。buffer=size设置内存换从去大小,例如buffer=32k。若不想记录日志,access_log off;
Nginx的自动列目录配置
一些开源软件的下载页面是能够自动列目录的,nginx可以实现,前提是当前目录下不存在用Index指令设置的默认首页文件。
location / {
autoindex on;
autoindex_exact_size [on|off];#设定索引时文件大小的单位(B,KB,MB或GB)
auto_index_localtime [on|off];#开启以本地时间来显示文件时间的功能。
}
Nginx的本地缓存
浏览器在用户磁盘上对最近请求过的文档进行存储,当再次访问这个页面时,浏览器从本地显示文档,这样加速页面的阅览,以节约网络资源,提高网络的效率。
浏览器通过expires指令输出header头来实现。expires [time|epoch|max|off]
默认值为expires off;作用域:http,server,location。用途:使用本指令可以控制HTTP应答中的"expires"和"Cache-Control"的header头信息(起到控制页面缓存的作用)。
可在time值中使用整数或负数,expires头标的值将通过当前系统时间+设定的time值获得。
epoch:指定expires为1970-01-01 00:00:00 GMT
max:指定expires的值为2037-12-31 23:59:59 GMT,cache-control的值为10年,-1指定expires的值为当前时间-1秒,即永远过期。
Cache-Control:的值由设定的时间来决定。取负数,Cache-Control:no-cache。整数或0,Cache-Control:max-age=设定的时间。
off表示不修改expires和Cache-Control的值。
location ~ .*\*(gif|jpg|jpeg|png|bmp|swf)$
{
expires 20d;
#expires 1h;
}