Linux笔记:高并发下的Web架构之代理与负载均衡与Nginx配置

代理

所谓代理就是让别人帮你办事,将结果反馈给你。

1 ) 正向代理(Proxy)

  • 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
  • 例如:你无法去国外,让能出国的朋友去国外购买商品后再转交给你。
  • 例如:中国无法访问google.com, 我们通过代理服务器访问google,之后代理服务器把结果返回给你
  • 再比如:路人甲缺钱想找马老师借钱,路人甲无法联系马老师但与刘老师比较熟,而刘老师和马老师比较熟, 路人甲委托刘老师在马老师那里借到了钱(马老师并不知道钱是路人甲借的)

2 ) 反向代理(Reverse Proxy)

  • 服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
  • 例如:拨打中国电信客服电话10000,每一次为你服务的客服都可能不是一个人, 我们并不关心他们内部如何运作, 那么中国电信10000对于你来说就是反向代理了。
  • 例如:我们访问百度,其实百度是由多台服务器构成的,我们并不知道是哪一台服务器响应我们的,www.baidu.com 域名对应的服务器对于我们电脑来说就是反向代理。
  • 怎样让后端的服务器均衡的提供服务,才能充分利用资源, 这就是我们说的负载均衡技术。

3 ) 两者区别

  • 正向代理代理的对象是客户端,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求
  • 反向代理代理的对象是服务端,反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx就是性能非常好的反向代理服务器,用来做负载均衡。

负载均衡

1 ) 概念

  • 通过某种负载分担技术,将外部发送来的请求均匀的分配到对称结构中的某一台服务器上,而接收到请求的服务器独立第回应客户的请求

2 ) 实现

  • 硬件负载均衡
    • 买一台相关的设备即可帮我们实现负载均衡
    • 代表厂商:F5、NetScaler、Radware、Array
    • 劣势:设备、服务费昂贵,难以扩展功能和容量, 灵活性差
  • 软件负载均衡
    • Nginx: 轻量级Web服务器/反向代理服务器
    • Ngin特点:工作在网络的七层之上, 对网络依赖很小, 并发大性能不凡
  • 基于DNS的负载均衡

Nginx的安装与管理

1 ) 安装

  • $apt update
  • $apt install -y nginx
  • $nginx -V 查看版本

2 ) 服务管理

  • $service nginx start
  • $service nginx stop
  • $service nginx restart

3 ) 修改配置

  • $nginx -t 修改配置文件后, 用于测试配置文件是否存在问题
  • $nginx -s reload 修改配置文件后,用于重新加载配置文件使之生效

Nginx配置文件的修改

  • 修改主配置文件 $vi /etc/nginx/nginx.conf

    user                www-data;
    worker_processes    auto;
    pid                 /run/nginx.pid;
    events {
        worker_connctions   1000;
    }
    http {
        gzip            on;
        access_log      /var/log/nginx/access.log;
        error_log       /var/log/nginx/error.log;
        include         /etc/nginx/conf.d/*.conf;
        include         /etc/nginx/sites-enabled/*;
    }
    
    • user 表示nginx将以什么用户身份来运行它的进程,涉及到权限的时候,要针对该用户进行配置权限
    • worker_processes 表示工作进程数,默认是自动,一般可以根据cpu的核心数来设置这个进程数,特殊情况下也可以设置成cpu核心数的2倍
    • pid 表示 nginx启动的进程id
    • worker_connctions 表示一个work可以处理多少个并发,如果worker_processes配置了8个,worker_connctions配置成了1000,那么nginx最大并发数是8000
    • gzip 表示网页压缩,默认开启,不开启网页流量会更大
    • access_log 表示成功访问日志
    • error_log 表示失败访问日志
    • include 导入其他的配置文件
  • nginx的server的配置 $vi /etc/nginx/sites-enabled/default

    server {
        listen        80;
        root          /var/www/html;
        index         index.html index.htm;
        server_name   _;
        location / {
            try_files $uri $uri/ =404;
        }
    }
    
    • listen: nginx监听的端口,一般是80, 也就是浏览器浏览网页的默认端口
    • root: 指定网站的根目录在哪里
    • index: 表示在浏览器中如果没有输入要访问的文件默认去读取某一个文件
    • server_name: 表示服务器的名字, 通常会填写我们的域名
    • try_files: 表示将url中输入的uri当做文件来查找, 如果没有当做目录来查找,再没有就返回404
  • 注意nginx的每一个配置项都要以;结束

你可能感兴趣的:(Git,Github,Linux,Docker,Full,Stack,linux,负载均衡,Nginx配置)