nginx总结
个人对nginx项目的总结
介绍
架构
正向代理
反向代理
安装
链接: 点我安装.
角色
master
接收来自外界的信号
向各worker进程发送信号
监控woker进程的运行状态
当woker进程退出后(异常情况下),会自动重新启动新的woker进程
worker
同等竞争来自客户端的请求
一个请求,只可能在一个worker进程中处理
worker进程的个数是可以设置的,一般与机器cpu一致
Ngnix 是如何实现高性能的
事件驱动模型
基于异步及非阻塞的事件驱动模型,nginx在接收到用户请求后,负责将request转发到tomcat,然后生成一个时间驱动,nginx就去休息了,等tomcat完成逻辑之后,事件驱动就通知nginx来取数据。
多进程机制
进程之间不共享资源,不需要加锁
采用独立的进程,可以让进程互相之间不会影响
内存池
把多次向系统申请内存的操作整合成一次,这大大减少了 CPU 资源的消耗,同时减少了内存碎片
使用
集群
Keepalived+Nginx实现双机热备
Keepalived高可用故障切换转移原理
主Master节点会不断地向备节点发送(多播的方式)心跳消息告诉备Backup节点自己还活着
当主节点发生故障时,备节点接管主节点的IP资源和服务
当主节点恢复时,备节点又会释放主节点故障时自身接管的IP资源和服务,恢复到原来的备用角色
角色
主Master节点
备Backup节点
Nginx常见配置说明
worker_processes 8
nginx进程数,建议设置为等于CPU总核心数
worker_connections 65535
单个进程最大连接数(最大连接数=连接数*进程数)
upstream blog.ha97.com
upstream的负载均衡,weight是权重,权值越高被分配到的几率越大
client_header_buffer_size 32k
上传文件大小限制
large_client_header_buffers 4 64k
设定请求缓
client_max_body_size 8m
设定请求缓
autoindex on
开启目录列表访问,合适下载服务器,默认关闭
tcp_nopush on
防止网络阻塞
tcp_nodelay on
防止网络阻塞
keepalive_timeout 120
长连接超时时间,单位是秒
目录
conf
fastcgi
fastcgi.conf
fastcgi相关参数的配置文件
fastcgi.conf.default
fastcgi.conf的原始备份
fastcgi_params
fastcgi的参数文件
koi
koi-utf
koi-win
mime
mime.types
媒体类型
mime.types.default
conf
nginx.conf
1~3行
main区,Nginx核心功能模块
5~7行
events区,Nginx核心功能模块
9~39行 http{ }
nginx.conf.default
vhost
scgi
scgi_params
scgi相关参数文件,一般用不到
scgi_params.default
uwsgi
uwsgi_params
uwsgi相关参数文件,一般用不到
uwsgi_params.default
win
win-utf
html
50x.html
index.html
默认的首页文件,首页文件名字是在nginx.conf中事先定义好的
logs
access.log
Nginx的默认访问日志文件
$remote_addr
客户端地址
$request
服务器时间
$status
HTTP响应代码
$bytes_sent
传输客户端字节数
$http_referer
error.log
Nginx的错误日志文件
nginx.pid
Nginx进程启动后,会把所有进程的ID号写到此文件
sbin
nginx
Nginx的启动命令nginx
后续持续更新。。。