结构

.tar.gz 包目录结构

1、auto:编译相关的脚本

2、CHANGES:版本变更记录

3、CHANGES.ru:俄文的版本变更记录

4、conf:默认的配置文件

5、configure:自动脚本程序

(1)检测环境,根据环境检测结果,生成 C 代码

(2)生成编译代码,所需 Makefile 文件

6、contrib:特殊的脚本文件,其中 README 中有对脚本的详细说明

7、html:自带的两个 html 页面,访问 Nginx 首页、错误页面

8、LICENSE:许可证的相关描述文件

9、man:man 手册

10、README:阅读指南

11、src:源代码 

 

安装目录结构

1、conf:Nginx 所有配置文件目录

(1)CGI:Common Gateway Interface,通用网关接口,服务端获取到请求和数据后,调用 CGI 程序处理、返回相应结果到客户端的一种标准规范

(2)fastcgi.conf:fastcgi 相关配置文件

(3)fastcgi.conf.default:fastcgi.conf 备份文件

(4)fastcgi_params:fastcgi 参数文件

(5)fastcgi_params.default:fastcgi 参数备份文件

(6)scgi_params:scgi 参数文件

(7)scgi_params.default:scgi 参数备份文件

(8)uwsgi_params:uwsgi 参数文件

(9)uwsgi_params.default:uwsgi 参数备份文件

(10)mime.types:记录 HTTP 协议中的 Content-Type 的值及文件后缀名的对应关系

(11)mime.types.default:mime.types 备份文件

(12)nginx.conf:Nginx 核心配置文件

(13)nginx.conf.default:nginx.conf 备份文件

(14)koi-utf、koi-win、win-utf:与编码转换映射相关的配置文件,用来将一种编码转换成另一种编码

2、html:存放 Nginx 自带的两个静态 html 页面

(1)50x.html:访问失败后的页面

(2)index.html:成功访问的默认首页

3、logs:记录日志

(1)access.log:访问日志,Nginx 在处理完请求后,立即在访问日志中写入有关客户请求的信息

(2)error.log:错误日志,写下关于遇到的不同严重程度的问题的信息

(3)nginx.pid:写入 master 进程 pid

4、sbin:存放执行程序文件 nginx

(1)nginx:控制 Nginx 启动、停止等相关命令

 

核心配置文件结构

1、默认位置:/usr/local/nginx/conf/nginx.conf

2、配置格式

指令名 指令值;

3、默认三大块:全局块、events 块、http 块

(1)http 块中可以配置多个 server 块

(2)每个 server 块可以配置多个 location 块

#全局块,主要设置Nginx服务器整体运行的配置指令 
worker_processes 1;

#events块,主要设置Nginx服务器与用户的网络连接,此部分对Nginx服务器的性能影响较大
events {
    worker_connections 1024;
}

#http块,配置代理、缓存、日志记录、第三方模块等
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;

    #server块,Nginx配置虚拟主机相关内容
    server {
        listen 80;
        server_name localhost;

        #location块,基于Nginx服务器接收请求字符串,与location后面的值进行匹配,对特定请求进行处理
        location / {
            root html;
            index index.html index.htm;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }
    }
}

 

全局块

1、user

(1)配置运行 Nginx 服务器的 worker 进程的用户和用户组

(2)语法

user username [usergroup];

(3)默认值

user username [usergroup];

(4)位置:全局块

(5)该属性也可以在编译的时候指定,语法:./configure --user=username --group=group

(6)若编译、配置文件都设置,以配置文件为准

2、master_process

(1)是否开启工作进程

(2)语法

master_process on|off;

(3)默认值

master_process on;

(4)位置:全局块

3、worker_processes

(1)配置 Nginx 生成工作进程的数量

(2)理论上 workder process 值越大,可以支持的并发处理量也越多,但事实上受到服务器自身限制,建议将该值和服务器 CPU 内核数保存一致

(3)语法

worker_processes num/auto;

(4)默认值

worker_processes 1;

(5)位置:全局块

3、daemon

(1)设定 Nginx 是否以守护进程的方式启动

(2)守护式进程:Linux 后台执行的一种服务进程,独立于控制终端,不会随着终端关闭而停止

(3)语法

daemon on|off;

(4)默认值

daemon on;

(5)位置:全局块

4、pid

(1)配置 Nginx 当前 master 进程 pid 存储的文件路径

(2)该属性可以通过 ./configure --pid-path=PATH 指定

(3)语法

pid file;

(4)默认值

pid file :/usr/local/nginx/logs/nginx.pid;

(5)位置:全局块

5、error_log

(1)配置 Nginx 错误日志存放路径

(2)该属性可以通过 ./configure --error-log-path=PATH 指定

(3)语法

error_log file [日志级别];

(4)默认值

error_log logs/error.log error;

(5)位置:全局块、http、server、location

(6)日志级别(从低到高):debug、info、notice、warn、error、crit、alert、emerg

(7)不要设置为 debug / info,因为会带来大量的磁盘 I/O 消耗,影响 Nginx 性能

6、include

(1)引入其他配置文件,使 Nginx 配置更加灵活

(2)语法

include file;

(3)默认值:无

(4)位置:任意

 

events 块

1、accept_mutex:设置 Nginx 网络连接序列化

(1)语法

accept_mutex on|off;

(2)默认值

accept_mutex on;

(3)位置:events

(4)解决惊群问题:某一个时刻,客户端发送一个请求连接,多个 worker 进程会被同时唤醒,但是最终只会有一个进程可以获取到连接,如果每次唤醒的进程数目太多,就会影响 Nginx 整体性能

(5)若开启,将会对多个 Nginx 进程接收连接进行序列化,顺序唤醒接收,防止多个进程对连接的争抢

2、multi_accept

(1)设置是否允许同时接收多个网络连接

(2)语法

multi_accept on|off;

(3)默认值

multi_accept off;

(4)位置;events

(5)如果 multi_accept 为 off,Nginx 一个工作进程只能同时接受一个新的连接,否则,一个工作进程可以同时接受所有的新连接

3、worker_connections

(1)配置单个 worker 进程最大的连接数

(2)语法

worker_connections number;

(3)默认值

worker_commections 512;

(4)位置:events

(5)此处连接数不只包括和前端用户建立的连接数,而是包括所有可能的连接数

(6)number 值不能大于操作系统支持打开的最大文件句柄数量(1024)

4、use

(1)Nginx 服务器选择哪种事件驱动,来处理网络消息

(2)语法

use method;

(3)默认值:根据操作系统定

(4)位置:events

(5)method 可选值:select / poll / epoll / kqueue 等

 

http 块

1、MIME-Type:网络资源的媒体类型,区分前端请求的资源类型

2、Nginx 默认配置

include mime.types;
default_type application/octet-stream;

3、default_type

(1)配置 Nginx 响应前端请求默认 MIME 类型

(2)语法

default_type mime-type;

(3)默认值

default_type text/plain;

(4)位置:http、server、location

(5)mime.types 文件中 MIMT 类型,与相关类型文件的文件后缀名的对应关系,加入到当前的配置文件中

include mime.types;

(6)如果请求逻辑简单,则可以使用 Nginx 快速实现,不用编写程序响应请求,可以减少服务器资源占用,并且响应性能非常快

4、access_log

(1)设置用户访问日志的相关属性

(2)语法

access_log path[format[buffer=size]]

(3)默认值

access_log logs/access.log combined;

(4)位置:http、server、location

5、log_format

(1)指定日志的输出格式

(2)语法

log_format name [escape=default|json|none] string……;

(3)默认值

log_format combined "……";

(4)位置:http

6、sendfile

(1)设置 Nginx 服务器是否使用 sendfile() 传输文件,该属性可以极大提高 Nginx 处理静态资源的性能

(2)语法

sendfile on|off;

(3)默认值

sendfile off;

(4)位置:http、server、location

7、keepalive 模式

(1)HTTP 是一种无状态协议,客户端向服务端发送一个 TCP 请求,服务端响应完毕后断开连接

(2)告知服务器端在处理完一个请求后,保持该 TCP 连接的打开状态,若接收到来自这个客户端的其他请求,服务端就会利用这个未被关闭的连接,而不需要重新创建一个新连接,提升效率,但此连接会有超时时间

8、keepalive_timeout

(1)设置长连接的超时时间

(2)语法

keepalive_timeout time;

(3)默认值

keepalive_timeout 75s;

(4)位置:http、server、location

9、keepalive_requests

(1)设置一个 keep-alive 连接使用的次数

(2)语法

keepalive_requests number;

(3)默认值

keepalive_requests 100;

(4)位置:http、server、location

posted @   半条咸鱼  阅读(257)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示