Skip to content

Latest commit

 

History

History
executable file
·
94 lines (88 loc) · 4.76 KB

配置文件详解.md

File metadata and controls

executable file
·
94 lines (88 loc) · 4.76 KB

Nginx配置文件详解

##Nginx配置文件结构

event{
    网络模型定义
}
http{
    网站整体环境配置
    server{
    一个可以访问的web服务器
    }
}

注意:Nginx配置文件结尾用分号

####全局设置 user www www; #程序运行用户和组 worker_processes auto; ##启动进程,指定nginx启动的工作进程数量,建议按照cpu数目来指定,一般等于cpu数目;一般写auto自动匹配 error_log logs/error.log; #全局错误日志 pid logs/nginx.pid; #主进程PID保存文件 worker_rlimit_nofile 51200; #文件描述符数量

####event网络模型定义

use epoll; #使用epoll模型,对于2.6以上的内核,建议使用epoll模型以提高性能
            #epoll 是多路复用 IO(I/O Multiplexing)中的一种方式,但是仅用于 linux2.6 以 上内 核,可以大大提高 nginx 的性能

worker_connections 51200; #工作进程的最大连接数量,根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行每个进程允许的最多连接数, 理论上每台nginx服务器的最大连接数为worker_processes*worker_connections,具体还要看服务器的硬件、带宽等。

####http整体环境配置 include mime.types; default_type application/octet-stream; #设定mime类型,文件传送类型由mime.type文件定义 sendfile on; #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为 on。如果用来进行下载等应用磁盘IO重负载应用, 可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime. tcp_nopush on; #这个是默认的,结果就是数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞。(只在sendfile on时有效) keepalive_timeout 60; #连接超时时间 tcp_nodelay on; #禁用nagle算法,也即不缓存数据。有效解决网络阻塞 gzip on; #开启gzip网络压缩 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #定义日志格式 $remote_addr与$http_x_forwarded_for用以记录客户端的ip地址; $remote_user:用来记录客户端用户名称; $time_local: 用来记录访问时间与时区; $request: 用来记录请求的url与http协议; $status: 用来记录请求状态;成功是200, $body_bytes_s ent :记录发送给客户端文件主体内容大小; $http_referer:用来记录从那个页面链接访问过来的; $http_user_agent:记录客户毒啊浏览器的相关信息; ####server整体环境配置 listen 80; #监听80端口,WEB服务的监听设置,可以采用"IP地址:端口"形式 server_name www.nginx.org; #服务器名,可以写多个域名,用空格分隔 charset utf-8; #指定字符集 root /home/wwwroot/default; #网页主目录 index index.html index.htm index.php; #默认网页文件 ####location大致分为三类:

location = patt {} [精准匹配]
location patt{} [一般匹配]
location ~ patt{} [正则匹配]

1、首先查看精准匹配是否匹配成功,如果成功则返回结果并停止解析过程
2、查看普通匹配是否匹配成功,如果匹配成功,把匹配成功最长的记录下来
3、依次寻找正则匹配,如果有一个匹配,立马返回结果并停止解析过程
4、如果正则都不匹配则返回普通匹配中记录的最长匹配

#gzip配置的常用参数

gzip on|off;                                    #是否开启gzip
gzip_buffers 32 4K| 16 8K                       #缓冲(压缩在内存中缓冲几块? 每块多大?)
gzip_comp_level [1-9]                           #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
gzip_disable                                    #正则匹配UA 什么样的Uri不进行gzip
gzip_min_length 200                             #开始压缩的最小长度(再小就不要压缩了,意义不在)
gzip_http_version 1.0|1.1                       #开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
gzip_proxied                                    #设置请求者代理服务器,该如何缓存内容
gzip_types text/plain  application/xml          #对哪些类型的文件用压缩 如txt,xml,html ,css
gzi
p_vary on|off                                   # 是否传输gzip压缩标志