Nginx反向代理-负载均衡

nginx 是什么?
Nginx 是一个 高性能的 HTTP 和反向代理 web 服务器 ,同时也提供了 IMAP/POP3/SMTP 服务。因它的稳定 性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名!能够支持高达 50,000 个并发连接数 的响应。
Nginx 是一款 轻量级的 Web 服务器 / 反向代理服务器及电子邮件( IMAP/POP3 )代理服务器 ,在 BSDlike 协议下发行。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中表现较好。
ng 的作用

反向代理

正向代理: 正向代理就是在客户端配置代理服务器,通过代理服务器去进行互联网操作。例如 : 使用 VPN上网。
反向代理: 客户端发送请求到 反向代理 服务器,由反向代理服务器去选择目标服务器获取它的数据,在返回给客户端。此时反向代理服务器和目标服务器对外就是一台服务器,暴露的是代理服务器地址,隐藏了真实的服务器地址。 当代理为服务端服务时,该代理就是反向代理。

反向代理的作用:

1 、保证各种服务在内网的安全,防止 web 攻击,大型网站,通常将反向代理服务器作为公网访问
地址,各种服务则处于内网之中。
2 、负载均衡,反向代理服务器选择合适的服务进行请求,实现流量的负载均衡。
3 、限流,当流量实在过大时,机器无法负载的情况下,反向代理服务器可以限制一部分流量请
求服务(让请求失败)。
4 、数据预处理,处理请求的数据,让服务端能够识别,以及在服务端的响应数据中添加或者删
除一些数据等。
负载均衡 在多个服务器的情况下,我们将请求发放到各个服务器上,将原先请求集中到单个服务器的情况改为将请求发送到多个服务器上,将负载分发到不同的服务器,也就是负载均衡。( 可以给性能高的服务器多 发一些请求、性能低的少发一些请求)

实验准备:

windows电脑一台、VM Redhat虚拟机一台、阿里云服务器一台

实验要求:通过windows浏览器访问虚拟机时,能够访问到虚拟机的web服务和4云服务器的web服务。

一、首先确保虚拟机nginx服务开启,查看默认index.html文件是否存在

使用命令cd /usr/share/nginx/html/

二、修改虚拟机的Nginx配置文件

使用命令vim /etc/nginx/nginx.conf

server_name 设置为你要匹配的服务器域名或者ip,当客户端发送请求时,Nginx 将会根据 server_name 来选择合适的 server 块进行处理。可以设置多个域名,使用空格分隔开;

proxy_pass 用于配置反向代理。它用于将客户端的请求转发(代理)到指定的后端服务器,它将所有的请求代理到名为backend的upstream定义的一组后端服务器。

weight代表权重,可以自由更改;max_fails=2表示最多失败两次;fail_timeout=30s表示失败超时时间30s;

保存以下命令并退出

 upstream backend{
             server 192.168.89.2:80 weight=200 max_fails=2 fail_timeout=30s;
             server 47.93.79.91:80 weight=100 max_fails=2 fail_timeout=30s;
                }
 
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  192.168.89.2;
        root         /usr/share/nginx/html/;
 
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
 
        location / {
            proxy_pass http://backend;
        }
 
        error_page 404 /404.html;
            location = /40x.html {
            root /usr/share/nginx/html;
            }
 
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root /usr/share/nginx/html;
        }

三、尝试在windows上进行访问http://192.168.89.2

更改权重,重启nginx服务,再次刷新页面

这是虚拟机的web服务

Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐