nginx开源版本:只保留了nginx最基本的功能
nginx plus商业版本:nginx加强添加了很多功能
openresty:结合了rua脚本
Tengine:taobao网出品,更安全稳定
nginx配置文件
conf存放配置文件:主要是nginx.conf‘
html目录:存放index.html和访问出错返回的html
log目录:组要存放日志
access.log:每个请求的访问都会在这个日志里
error.log:系统出错,访问出错
nginx.pid:进程主ID号
sbin:存放可执行文件
nginx请求流程:
nginx启动后会启动两类进程:Master,worker,Master主要负责协调work进程,work进程负责读取配置文件根据配置文件内容进行请求相关工作。
nginx配置文件:
worker_processes:work进程数量,一般对应服务器物理cpu核数
worker_connections:每个worker连接数
include:引用别的配置文件
mime.types:返回给客户端文件类型,比如返回txt文件类型,那么在返回头里面就会加上txt文件类型的解析格式,客户端浏览器就会根据返回的解析格式将返回文件解析成txt文件。
各种类型的文件都应相应的解析格式,如果没有,可以手动添加上。
default_type:如果不包含在mime.type里,那么就以default.type指定的格式解析
sendfile :减少了系统文件传递的一次拷贝的过程
server:一个server代表一个主机站点
listen:监听端口
server_name:域名,主机名
location:匹配URI
nginx代理模型
反向代理关键字:proxy_pass
proxy_pass后面跟具体主机地址或者服务地址。
注意:proxy_pass不支持https协议
访问192.168.44.101服务器,这台服务器proxy_pass反向代理到192.168.44.102
1.隧道式模型:请求流量来回都要经过nginx网关
2.DR模型:请求流量来时经过nginx,返回时直接返回给客户端不经过nginx网关。有效分散流量,防止流量阻塞在nginx。
nginx负载均衡
关键字upstream
upstream模块和server同一级,可以给一组服务地址起一个别名,server中proxy_proxy代理这一组服务地址
后端服务形成集群,多个服务器提供同样的服务。
负载均衡策略:
轮询
weight权重
添加down,不让该服务器工作,添加backup,变成备用金,平时不接收请求。
IP-hash:
根据来源的ip地址,保持会话请求到同一台服务器上。其实和现在的网络环境已经不适用了,如果是移动端,根据基站更换IP很常见,所以ip_hash的作用也体现不出来
least_conn:
最少连接访问,当一台服务器连接数过多,就分配给其他用户请求。
fair:
根据后端服务器响应时间转发。(需用第三方插件,有可能造成流量倾斜)
url_hash:
根据url进行定向服务器访问,适用于请求固定资源。