nginx | 正反向代理和负载均衡

125 阅读2分钟

一、反向代理和负载均衡

1、反向代理设置

​ a、编辑/etc/nginx/nginx.conf配置文件

​ b、增加 server 片段的内容————设置 server_name 为 127.0.0.1 并且监听 8081 端口,将所有路径转发到 http://127.0.0.1:8000/

http{
        server {
        listen       8081; #nginx监听的端口
        server_name  127.0.0.1;		
        
        location / {
            proxy_pass http://127.0.0.1:8000/;
        }
	}
}
客户端访问127.0.0.1:8081时,会跳转到http://127.0.0.1:8000/下
2、负载均衡

​ a、编辑nginx.conf配置文件

​ b、新增 upstream 节点,设置其对应的 2 个后端服务,最后修改了 proxy_pass 指向(格式为 http:// + upstream 的节点名称)

http {
    upstream 127.0.0.1 {# 负载均衡服务器列表
        server 127.0.0.1:8001;
        server 127.0.0.1:8002;
	}
    
    server {
        listen       8081;
        server_name  localhost;
        location /proxy/ {
            proxy_pass http://127.0.0.1/;#反向代理
        }
    }
}
再重复访问 http://127.0.0.1:8081,多访问几次便于查看效果
可以同时配置多个upstream和server
3、正向代理
resolver 114.114.114.114 8.8.8.8;
server {
    resolver_timeout 5s;
    listen 81;

    location / {
    	proxy_pass http://$host$request_uri;
    }
}

resolver是配置正向代理的DNS服务器,listen 是正向代理的端口。
配置好了就可以在ie上面或者其他代理插件上面使用服务器ip+端口号进行代理了。

二、服务器拓展概念

1、横向拓展与纵向拓展
  • 横向扩展:扩展服务器的数量进行高并发的处理(增强处理业务的能力) 根据配置nginx的反向代理,转发服务器(配置的ip)进行轮换处理业务(可加入负载均衡器进行分发请求)
  • 纵向扩展:增加单机的处理能力,一般增加cpu的处理能力
2、单机实现负载均衡

在提到负载均衡的时候,大多数人都是想着几台服务器甚至几十台服务器组成一个群组,也就是横向拓展服务器来实现负载均衡吧。

但是还有一种情况是纵向拓展也就是当你的项目在一台服务器上占用的资源很少,其实是可以在同一台服务器上部署多个项目来实现负载均衡的。

利用nginx+docker来实现同一台服务器实现负载均衡