Nginx配置文件详细解析

1. 配置文件结构

基本配置

event{

    网络模型定义

}

   

http{

    网站整体环境配置

    server {

        一个可以访问的web服务器

    }

    server {

        一个可以访问的web服务器

    }   

} 

2. 配置文件详解

#定义Nginx运行的用户和用户组,安装时建立的,如果用户不存在,就不能启动

user www www;

#启动进程,通常设置成和cpu的数量相等。相当于cpu个数,如果写多了,nginx会按给定的数据,往死里用

worker_processes 8;

#错误日志定义类型,[ debug | info | notice | warn | error | crit ]

error_log /var/log/nginx/error.log info;

#主进程PID保存文件, 记录的是启动时占用进程的id号,是程序启动、停止、重启,判断是否在线的依据

pid /var/run/nginx.pid;

 

#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致

worker_rlimit_nofile 65535;

events

{

#参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型

use epoll;

 

#工作进程最大允许连接数, 定义nginx进程最大连接数为6000;但是默认情况下Linux文件描述符为1024(通过 ulimit -a命令,查看open files的值),所以上面的文件描述符数量需要更改下(对应也需要更改open files的值,命令ulimit -SHn 65535,即比6000要大,否则为虚的并发量;想要开机永久生效,将ulimit -SHn 65535写入 /etc/rc.local文件中)

worker_connections 65535;

}

#整体环境配置

http

{

include mime.types; 

default_type application/octet-stream;  #设定mime类型,文件传送类型由mime.type文件定义

#charset utf-8; #默认编码

server_names_hash_bucket_size 128; #服务器名字的hash表大小

client_header_buffer_size 32k; #上传文件大小限制

large_client_header_buffers 4 64k; #设定请求缓

client_max_body_size 8m; #设定请求缓存大小

sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off;用于异步传输(把来的请求先攒着,等达到一定量在再处理;并不是自己处理,而是交给fastcgi)大大提高了效率,也是nginx并发量大的原因,apache是同步传输

tcp_nopush on; #防止网络阻塞,这个是默认的,结果就是数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞。(只在sendfile on时有效)

tcp_nodelay on; #防止网络阻塞,禁用nagle算法,即不缓存数据

autoindex on; #开启目录列表访问,合适下载服务器,默认关闭

keepalive_timeout 120; #连接超时时间,连接超时时间,太长,排队人数太多,服务器压力大;太短,客户端一刷新就报错

#fastcgi自定义设置(默认没有),相关参数可以改善网站的性能,减少资源占用,提高访问速度

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

#开启gzip网络压缩,自定义配置(默认没有)

gzip on; #开启gzip压缩输出

gzip_min_length 1k; #最小压缩文件大小

gzip_buffers 4 16k; #压缩缓冲区

gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)

gzip_comp_level 2; #压缩等级

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/0c804b21d56299d5551224f05555198e.html