Nginx反向代理和负载均衡

目录

1、nginx是什么?

2、nginx有什么作用?

        1、反向代理

       2、负载均衡

      3、动静分离

3、Nginx配置

        1、配置文件结构

        2、反向代理配置及负载均衡配置


1、nginx是什么?

  • Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名!能够支持高达 50,000 个并发连接数的响应。

  • Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

2、nginx有什么作用?

        1、反向代理

        正向代理:正向代理就是在客户端配置代理服务器,通过代理服务器去进行互联网操作。

                例如:使用VPN上网。

Nginx反向代理和负载均衡_第1张图片

        反向代理:客户端发送请求到反向代理服务器,由反向代理服务器去选择目标服务器获取它的数据,在返回给客户端。此时反向代理服务器和目标服务器对外就是一台服务器,暴露的是代理服务器地址,隐藏了真实的服务器地址当代理为服务端服务时,该代理就是反向代理。

Nginx反向代理和负载均衡_第2张图片

         反向代理的作用:

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

       2、负载均衡

        在多个服务器的情况下,我们将请求发放到各个服务器上,将原先请求集中到单个服务器的情况改为将请求发送到多个服务器上,将负载分发到不同的服务器,也就是负载均衡。(可以给性能高的服务器多发一些请求、性能低的少发一些请求)

Nginx反向代理和负载均衡_第3张图片

      3、动静分离

    简单理解就是把静态资源和动态资源分开部署。为了加快网站解析的速度,可以把静态资源和动态资源部署到不同的服务器来解析,加快解析速度。降低单个服务器的压力。

3、Nginx配置

        conf目录下的nginx.conf的配置文件

        1、配置文件结构

Nginx反向代理和负载均衡_第4张图片

        2、反向代理配置及负载均衡配置

例如访问:

前端用一台服务器:

http://Nginx服务器ip:999/** :会反向代理到前端资源(Nginx服务器在前端项目服务器上)

后端用3台服务器:进行负载均衡

 

  http{
         //负载均衡配置     weight是每台服务器使用的权重
        upstream    node    {
              server    服务器1的IP:8081    weight=10;
              server    服务器2的IP:8082    weiht=20;
              server    服务器3的IP:8083    weight=30;
           }

      server
        {
                listen 999;#这个server监听的端口是999
                server_name  localhost;#这里可以是域名
        
                //前端服务器和Nginx是同一台
                location / {
                        root   /www/book/book-yun-api/dist;#前端资源的根目录
                        index  index.html index.htm;
                }
   
              #后端服务器
              location /api/ {
                    # 匹配根路由,然后代理到 rk网络上。
                        proxy_pass  proxy_pass http://rk;
                         proxy_set_header    Host    $http_host;
                       proxy_set_header    X-Real-IP   $remote_addr;
                         proxy_set_header    X-Forwarded-For$proxy_add_x_forwarded_for;
                        }

                #处理错误页面
                 error_page   500 502 503 504  /50x.html;
                          location = /50x.html {
                        root   /www/book/book-yun-api/dist;
                    }
            }
}

你可能感兴趣的:(Nginx,nginx,负载均衡)