Nginx配置文件实例整理

1).配置文件结构

Nginx的配置文件是一个纯文本文件,它一般位于Nginx安装目录的conf目录下,整个配置文件是以block的形式组织的。每个block一般以一个大括号“{}”来表示,block可以分为几个层次,整个配置文件中main指令位于最高层,在main层下面可以有Events、HTTP等层级,而在HTTP层中又包含有server层,即server block,server block中又可分为location层,并且一个server block中可以包含多个location block。如下图所示:

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

在这4个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx的主模块指令、事件模块指令、HTTP核心模块指令。同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、Http Gzip Static模块和Http Addition模块等。

2).配置实例

main部分(全局属性配置)

user  www www;  #指定Nginx Worker进程运行用户以及用户组

worker_processes 2; #指定了Nginx要开启的进程数,多核CPU指定和核数一样多的进程数

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

worker_rlimit_nofile 65535; #指定单进程打开文件数,需与系统设定一致

events {

use epoll;  #指定nginx工作模式,nginx主要的工作模式有selectpollkqueueepoll

            其中selectpoll是标准工作模式,kqueueepoll为高效工作模式,epoll用在Linux系统中,而kqueue用在BSD系统中

worker_connections  65535;#指定单进程的最大连接数

}

HTTP部分

http {

include      mime.types; #指定配置文件所包含的文件

default_type  application/octet-stream; #指定默认类型为二进制流,也就是当文件类型未定义时使用这种方式,例如在没有配置PHP环境时,Nginx是不予解析的,此时,用浏览器访问PHP文件就会出现下载窗口

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#设定日志格式

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';;

client_max_body_size  20m;  #设置允许客户端请求的最大的单个文件字节数

client_header_buffer_size    16k;#指定来自客户端请求头的headerbuffer大小,如果自定义了消息头或有更大的cookie,可以在这里增加缓冲大小

large_client_header_buffers  4 32k;#指定客户端请求中较大的消息头的缓存最大数量和大小,4为个数,32k为大小,最大缓存为432kb

sendfile        on;#开启高效传输模式

tcp_nopush    on;  # tcp_nopushtcp_nodelay设置on,防止网络阻塞

tcp_nodelay    on;         

keepalive_timeout  65; #指定客户端连接保持活动的超时时间

client_header_timeout  10;#指定客户端请求头读取超时时间,如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out408)”错误

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

转载注明出处:https://www.heiqu.com/8d706943de26b43f30828b1342c85465.html