nginx负载均衡和反向代理

一.nginx 的 upstream4 种方式的分配
1、轮询(默认)
  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器宕机,能自动剔除。
2、weight
  指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2、ip_hash
  每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3、fair(第三方)
  按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4、url_hash(第三方)

反向代理和负载均衡说白了区别就在于:1台服务器叫反向代理,多台服务器叫负载均衡,没多大区别

二.负载均衡主要是proxy_pass,upstream的使用

upstream tang.com  
{
    server   ip:prot;
    server   ip:prot;
}

server
{
    listen  80;
    server_name  tang.com;
 
    location / {
        proxy_pass        tang.com;
        proxy_set_header   Host             $host;
        proxy_set_header   IP        $remote_addr;
        proxy_set_header   Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

session问题ip_hash可以解决轮询和weight等造成的session丢失问题,但网上所说还是存在一定缺陷,除此之外还有几种方式可以解决如:redis,cookie

Nginx中同时配置负载均衡反向代理,可按以下步骤操作。Nginx内置了负载均衡模块,支持轮询、加权轮询、最少连接、IP哈希等多种负载均衡算法,通过配置负载均衡规则,能将请求分发到多个后端服务器,实现负载均衡效果[^1]。 假设已安装并启动Nginx服务,在Nginx配置目录`conf.d`下新建一个`load_balancer.conf`文件,示例配置如下: ```nginx http { # 定义负载均衡的后端服务器组 upstream backend { # 添加后端服务器,这里可以根据需要添加更多服务器 server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { # 监听的端口 listen 80; # 服务器名称 server_name mydomain.com; location / { # 将请求代理到后端服务器组 proxy_pass http://backend; # 设置请求头,传递客户端的主机名 proxy_set_header Host $host; # 设置请求头,传递客户端的真实IP地址 proxy_set_header X-Real-IP $remote_addr; # 设置请求头,传递客户端的完整IP地址链 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 设置请求头,传递客户端的协议(http或https) proxy_set_header X-Forwarded-Proto $scheme; } } } ``` 在上述配置中,`upstream`块定义了一个名为`backend`的后端服务器组,其中包含多个后端服务器。`server`块定义了一个监听80端口的虚拟主机,`location`块将所有请求通过`proxy_pass`指令代理到`backend`后端服务器组,同时设置了一些请求头,以传递客户端的相关信息。 配置完成后,需要重新加载Nginx配置使新配置生效,可以使用以下命令: ```bash nginx -s reload ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值