01 Nginx学习笔记 - xiaoxin01/Blog GitHub Wiki
- 正向代理:client通过代理服务器访问外部service
- 反向代理:外部client访问反向代理服务器,服务器自动转发给目标服务器获取数据并返回
默认安装位置:
/usr/local/nginx
#/etc/nginx
三部分组成:
- 全局块:整体运行配置
- events块:控制nginx服务器与用户的网路连接
- http块:
- http全局块:
- server块:
以下从上到下,第一个优先级最高。
= | location = /uri
^~ | location ^~ /uri
~ | location ~ pattern
~* | location ~* pattern
/uri | location /uri
@ | location @err
- = ,精确匹配,表示严格相等
- ^~ ,匹配以URI开头
- ~ ,对大小写敏感, 使用正则 注意:某些操作系统对大小写敏感是不生效的,比如windows操作系统
-
* ,与相反,忽略大小写敏感, 使用正则 - /uri ,匹配以/uri开头的地址
- @ 用于定义一个 Location 块,且该块不能被外部 Client 所访问,只能被nginx内部配置指令所访问,比如 try_files or error_page
策略:
- 轮询,可以自动剔除down掉的服务器
- 权重weight,默认为1,越高分配比例越大
- ip哈希ip_hash,按照client ip计算哈希值来分配服务器
- fair(第三方),按照后端服务器响应时间来分配
upstream myServer {
# ip_hash
# fair
server 192.168.0.101:8080 weight=1
server 192.168.0.102:8080 weight=10
}
server {
location / {
proxy_pass http://myServer
}
}
location /img/ {
root /data/img/
autoindex on; # 可以列出文件夹内容
}
location /js/ {
root /data/js/
}
利用keepalived实现nginx集群的高可用,keepalived利用vip
一个master,多个worker的架构,workder参与争抢处理请求:
- 利于 nginx -s reload
- worker为独立的进程,减少锁的开销
- 多个worker可以高可用
- worker数量 = cpu逻辑核心数
- 最大并发连接数 = worker_processes * worker_connections /[2|4]