nginx配置文件详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx配置文件详解相关的知识,希望对你有一定的参考价值。

   nginx的配置文件nginx.conf存放在nginx的安装目录的conf下,整个配置文件是以block的形式组织的。整个配置文件中Main命令位于最高层,在Main层下面可以有Event、HTTP等级层,而在HTTP层中又包含server层,即server block,server block中又可分为location层,并且一个server block中可以包含多个location block。

Nginx配置文件主要分成四个部分:main(全局设置)、server(主机设置)、upstream(负载均衡设置)和location(URL匹配特定位置的设置)。main部分设置的命令将影响其他所有设置;server部分的命令只要用于指定主机和端口;upstream命令主要勇于负载均衡,设置一系列的后端服务器;location部分用于匹配网页位置。这死者之间的关系形式:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。


下面这段是全局属性配置

//user指定nginx的worker进程运行的用户及用户组,默认是nobody账号运行
user nobody nobody;

//指定nginx开启的进程数
worker_processes 2;

//定义全局日志错误日志文件,日志输出级别有debug、info、notice、warn、error、crit可供选择
error_log /usr/local/nginx/logs/nginx_error.log crit;

//指定进程id的存储文件位置
pid /usr/local/nginx/logs/nginx.pid;

//用于绑定worker进程和cpu,Linux内核2.4以上可用
worker_rlimit_nofile 51200;

//设定nginx的工作模式及连接上限
//use指定nginx的工作模式,nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll
//其中select和poll都是标准工作模式,kqueue和epoll是高效的工作模式,对于linux系统,epoll是首选
//worker_connections用于定义nginx每个进程的最大连接数,默认是1024。最大连接数由 worker_processes
//和worker_connections决定,即max_client=worker_processes*worker_connections
//进程的最大连接数受linux系统进程的最大打开文件数限制,在执行操作系统命令"ulimit -n 65536"
//后worker_connections的设置才能生效
events
{
    use epoll;
    worker_connections 6000;
}

下面这段是nginx对HTTP服务器相关属性配置:

http
{
//include主模块命令,实现对配置文件所包含文件的设定,可以减少配置文件的复杂度。类似于apache中的include方法
include mime.types;

//default_type属于HTTP核心模块命令,这里设定默认的二进制流,也就是访当文件类型未定义
//时使用这种方式,例如,在没有配置php环境时,nginx是不予解析的,此时,用浏览器访问
//php文件就是出现下载窗口
default_type application/octet-stream;

server_names_hash_bucket_size 3526;
server_names_hash_max_size 4096;

//log_format指定日志输出格式,combined_realip为日志输出名称
log_format combined_realip ‘$remote_addr $http_x_forwarded_for [$time_local]‘
‘$host "$request_uri" $status‘ ‘"$http_referer" "$http_user_agent"‘;

//用于设定允许客户端请求的最大的单个文件字节数
client_max_body_size 10m;

//用于指定客户端请求头的headerbuffer大小。对于大多数请求,1KB的缓冲区大小已经足够,
//如果自定义了消息头或有更大的cookie,可以增加缓冲区大小
client_header_buffer_size 1k;
client_body_buffer_size 256k;

//用于指定客户端请求中较大的消息头的缓存最大数量和大小,4位个数,128K大小,最大缓存
//为4个128K
large_client_header_buffers 8 4k;

//用于开启高效文件传输模式。将tcp_nopush和tcp_nodelay另个命令设置为on用于放置网络阻塞
sendfile on;
tcp_nopush on;
tcp_nodelay on;

//设置客户端连接保持活动的超时时间。超过这个时间后,服务器会关闭该连接
keepalive_timeout 10;

//设置客户端请求头读取超时时间,如果超过这个时间,客户端还没有发送任何数据,nginx
//将返回“Request time out(408)”错误
client_header_timeout 10;

//设置客户端请求主题读取超时时间,如果超过这个时间,客户端还没有发送任何数据,nginx
//将返回“Request time out(408)”错误,默认值是60
client_body_timeout 10;

//指定相应客户端的超时时间,这个超时仅限于两个连接活动之间的时间,如果超过这个时间,
//客户端没有任何活动,nginx将会关闭连接
send_timeout 10;

connection_pool_size 256;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
client_body_temp_path /usr/local/nginx/client_body_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_intercept_errors on;

下面这段是HTTPGzip模块在nginx配置中的相关属性设置:

//用于设置开启或者关闭gzip模块
gzip on;

//设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值
//是0,不管页面多大都进行压缩。建议设置成大于1KB的字节数,小于1KB可能会越压缩越大
gzip_min_length 1k;

//表示申请4个单位16KB的内存作为压缩结果流缓存,默认申请是与原始数据大小相同的内存
//空间Kauai存储gzip压缩结果
gzip_buffers 4 16k;

//设置识别http协议版本,默认是1.1
gzip_http_version 1.1;

//指定压缩比例,1表示压缩比最小,处理速度最快,9表示压缩比最大,传输速度最快,但处
//速度最慢,也比较消耗内存
gzip_comp_level 2;

//指定压缩的类型,无论是否指定,“text/html”类型总会被压缩的
gzip_types text/plain application/x-javascript text/css text/htm application/xml;

//让前端的缓存服务器缓存经过gzip压缩的页面,例如用squid缓存经过的nginx压缩的数量
gzip_vary on;

下面这段是虚拟主机的配置:

//定义虚拟主机开始的关键字
server
{
//指定虚拟主机的服务端口
listen 80;

//用于指定ip地址或者域名,多个域名之间用空格分开
server_name 192.168.8.10 

//设定访问的默认首页地址 
index index.html index.htm index.php index.jsp;

//指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路径
root /usr/local/nginx/html/test;

//设置网页的默认编码格式
charset gb2313;

//指定虚拟主机的访问日志存放路径,最后的main指定访问日志的输出格式
access_log logs/www.test.com.log main;


本文出自 “ubuntu” 博客,请务必保留此出处http://thankinglove.blog.51cto.com/2311485/1792216

以上是关于nginx配置文件详解的主要内容,如果未能解决你的问题,请参考以下文章

Nginx配置文件详细介绍

./configure --prefix=nginx-root 这句代码是啥意思 求详解

nginx 配置详解是啥?

nginx配置文件详解

Nginx配置文件详解

nginx配置文件详解