Nginx Http服务器

xiaoxiao2021-02-28  9

1. Nginx的系统架构

Nginx包含一个单一的master进程和多个worker进程,每个进程都是单进程,并且设计为同时处理成千上万个连接。worker进程是处理连接的地方,Nginx使用了操作系统事件机制来快速响应这些请求。master进程负责读取配置文件、处理套接字、派生worker进程、打开日志文件和编译嵌入式的perl脚本。master进程是一个可以通过处理信号量来管理请求的进程。worker进程运行在一个忙碌的事件循环处理中,用于处理进入的连接。每一个nginx模块被构筑在worker中。任何请求处理、过滤、处理代理的连接和更多操作都在worker中完成。如果没有阻塞worker进程的进程(例如磁盘I/O),那么需要配置的worker进程要多于CPU内核数,以便处理负载。

2. Http核心模块

2.1.1. server

指令server开始一个新的上下文(context)。

http server指令

指令说明port_in_redirect确认nginx是否对端口指定重定向server创建一个新的配置区域,定义一个虚拟主机。listen指令指定IP和端口;server_name列举用于匹配的Host头值server_name配置用于响应请求的虚拟主机名称server_name_in_redirectserver_tokens在错误信息中禁止发送nginx的版本号和server响应头

2.1.2. 日志格式

参数说明示例$remote_addr客户端地址211.28.65.253$remote_user客户端用户名称–$time_local访问时间和时区18/Jul/2012:17:00:01 +0800$request请求的URI和HTTP协议“GET /article-10000.html HTTP/1.1”$http_host请求地址,即浏览器中你输入的地址(IP或域名)www.it300.com192.168.100.100$statusHTTP请求状态200$upstream_statusupstream状态200$body_bytes_sent发送给客户端文件内容大小1547$http_refererurl跳转来源https://www.baidu.com/$http_user_agent用户终端浏览器等信息"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;$ssl_protocolSSL协议版本TLSv1$ssl_cipher交换数据中的算法RC4-SHA$upstream_addr后台upstream的地址,即真正提供服务的主机地址10.10.10.100:80$request_time整个请求的总时间0.205$upstream_response_time请求过程中,upstream响应时间0.002

日志切割

# vim /etc/logrotate.d/nginx /usr/local/nginx/logs/*.log{ #指定转储周期为每天 daily #保留30个备份 rotate 30 #需要压缩 delaycompress #YYYYMMDD日期格式 dateext #忽略错误 missingok #如果日志为空则不做轮询 notifempty #只为整个日志组运行一次的脚本 sharedscripts #日志轮询后执行的脚本 postrotate service nginx reload endscript }
转载请注明原文地址: https://www.6miu.com/read-353011.html

最新回复(0)