Nginx反向代理和负载均衡

  • 什么是反向代理和负载均衡

反向代理:先来说说什么是正向代理。A通过服务器B访问服务器C。正向代理的一个明确的特点就是我们知道要访问哪个服务器。但是如果服务器C是一个集群,由服务器B决定到底访问集群C上的哪台机器,则服务器B就成了一个反向代理服务器了。

负载均衡:对于一个集群,怎么样让集群中的每台机器都均衡的处理请求,这个也是反向代理服务器做的事。一般是让集群中压力相对较小的服务器处理新的请求。

  • Nginx覆盖均衡的实现

 Nginx通过反向代理实现负载均衡

使用Nginx服务器实现负载均衡的时候,用户首先访问到Nginx服务器,然后Nginx服务器从服务器集群表中选择压力较小的服务器,然后将访问引向该服务器。

如果集群中的某个服务器崩溃,那么从待选服务器列表中删除该服务器,Ngnix就肯定不会讲请求引入该服务器了。

user nobody;

# 开启的Nginx进程数 一般设置为1就够了 现在为了测试负载均衡才设置4个
worker_process 4;

# 设置并发数
events{
    # 最大并发数
    worker_connections 1024;
}

# http请求配置
http{
    
    # 设置服务器列表,也就是待负载均衡的服务器列表  myproject 是服务器列表名
    upstream myproject{

    # 百度

       server 111.13.100.91:80;

        # 京东


          server 211.151.106.27:80;


       # 淘宝


          server 120.209.137.218:80;

    }

    # 监听的端口与目录
    server{
        listen 8080;
        # 做负载均衡的目录
        location / {
            proxy_pass http://myproject;
        }
    }
}

在浏览器上输入 http://127.0.0.1:8080  就能够根据实际负载情况,访问百度、京东、淘宝了

疑问:集群中如何共享session?或者说一个用户一次就是只访问一台服务器,除非退出,否则所有请求都在一个台服务器上

  • HTTP Upstream模块

什么是HTTP Upstream模块:是Nginx服务器中一个重要模块,实现在轮训和客户端ip之间实现后端的负载均衡,常用命令:ip_hash、server、upstream

ip_hash:如果用户A的请求已经给服务器B处理了,那么接下来他的所有请求也都会给服务器B

  • 其他负载均衡的方法
原文地址:https://www.cnblogs.com/sherrykid/p/5808293.html