反向代理
- 反向代理配置
- 通过反向代理,只有一个nginx的ip暴露给用户,用户不知道处理请求的是哪一台服务器。但是服务器可以清楚的知道用户的信息。
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
负载均衡
- 负载均衡配置
- 通过负载均衡,可以建立一个服务器组,接受请求后通过分配任务的方式处理请求,提高了处理的效率。
upstream myserver{
ip_hash; # 根据用户的ip进行分配
minimum_conn; # 由最少链接的服务进行处理
# 默认采用轮询的方式,可以设置权重
server 192.168.1.1:80 weight=1;
server 192.168.1.2:80 weight=2 max_fails=3 fail_timeout=30s;
# 在30s内超过3次失败,则标记为不可用,交给下一个节点处理
server 192.168.1.1:81 weight=1 backup; # 作为备用节点
server 192.168.1.2:82 weight=1 backup;
}
动静分离
- 动静分离:静态请求不去找处理请求的服务器,而是专门设立一个静态服务器
发来的请求包含静态文件请求,例如js,img等,还有动态请求,网站其他内容,通过动静分离过滤,再通过负载均衡分配任务,实现了系统的高可用。
location /static{
alias /data/www/static/;
}
alias和root的区别:alias是取别名,而root是说明上级目录
location /static{
alias /data/www/static/;
}
- 上面的设置,请求
ipaddress/static/1.png
会去/data/www/static/1.png下去找,即alias后面的值+url正则匹配之后的值
location /static{
root /data/www/static/;
}
- 上面的配置是指为正则设置上级目录,访问
ipaddress/static/1.png
会去/data/www/static/static/1.png,即root后面的值+路由中的值