• nginx反向代理和负载均衡


    反向代理与负载均衡概念简介

    严格地说,Nginx仅仅是作为Nginx Proxy反向代理使用的,因为这个反向代理功能表现的效果是负载均衡集群的效果,所以本文称之为Nginx负载均衡。那么,反向代理和负载均衡有什么区别呢?

    普通负载均衡软件,例如大名鼎鼎的LVS,其实功能只是对请求数据包的转发(也可能会改写数据包),传递,其中DR模式明显的特征是从负载均衡下面的节点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真实用户,而反向代理就不一样了,反向代理接收访问用户的请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用户,在节点服务器看来,访问的节点服务器的客户端用户就是反向代理服务器了,而非真实的网站访问用户。

    一句话,LVS等的负载均衡是转发用户请求的数据包,而Nginx反向代理是接收用户的请求然后重新发起请求去请求其后面的节点。

    Nginx是七层结构的,通过nginx本身来转发,可以有多种方式进行负载均衡,实现的功能多,nginx可以分业务

    LVS是四层结构的,通过转发数据包mac或ip头部,不能对数据进行修改,来实现的负载均衡,实现的功能少但效率高,LVS的WEB内容都给是一样的

     

    实现Nginx负载均衡的组件主要有两个,如下表

    负债均衡组件。.png-45.9kB

     

    反向代理与负载均衡搭建

     

    硬件准备

    准备3台VM虚拟机(有物理服务器更佳)都需要安装Nginx服务

    Nginx反向代理

    NginxWebA

    NginxWebB

    image_1crp57ne91mjek0c1q9v1js41iahs.png-6.8kB

     

    安装依赖软件包

    yum -y install openssl openssl-devel pcre pcre-devel

    rpm -qa openssl openssl-devel pcre pcre-devel

    三台都需要安装支持包

    image_1crp58vobfo7pno7v71usl9pq19.png-20.2kB

     

    软件包准备

    nginx-1.10.2.tar.gz

    image_1crp5ad1rtscc221q9v1hm51j9v1m.png-10.5kB

     

    安装Nginx服务

    useradd -M -s /sbin/nologin nginx

    tar xf nginx-1.10.2.tar.gz -C /usr/src

    cd /usr/src/nginx-1.10.2

    ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install

    ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ --->软链接可做可不做

    egrep -v "#|^$" nginx.conf.default > nginx.conf --->把配置文件多余的东西过滤掉

    这里只编译了一个截图,三台虚拟机的步骤都是一样的

    image_1crp6k368e75d611ho2oud9mm9.png-51.9kB

     

    简单的Nginx反向代理配置文件

     
    1. worker_processes 1;
    2. events {
    3. worker_connections 1024;
    4. }
    5. http {
    6. include mime.types;
    7. default_type application/octet-stream;
    8. sendfile on;
    9. keepalive_timeout 65;
    10. upstream www_server {
    11. server 192.168.200.68:80 weight=1;
    12. server 192.168.200.69:80 weight=1;
    13. }
    14. server {
    15. listen 80;
    16. server_name sl.yunjisuan.com;
    17. location / {
    18. proxy_pass http://www_server;

      反向代理与负载均衡概念简介

      严格地说,Nginx仅仅是作为Nginx Proxy反向代理使用的,因为这个反向代理功能表现的效果是负载均衡集群的效果,所以本文称之为Nginx负载均衡。那么,反向代理和负载均衡有什么区别呢?

      普通负载均衡软件,例如大名鼎鼎的LVS,其实功能只是对请求数据包的转发(也可能会改写数据包),传递,其中DR模式明显的特征是从负载均衡下面的节点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真实用户,而反向代理就不一样了,反向代理接收访问用户的请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用户,在节点服务器看来,访问的节点服务器的客户端用户就是反向代理服务器了,而非真实的网站访问用户。

      一句话,LVS等的负载均衡是转发用户请求的数据包,而Nginx反向代理是接收用户的请求然后重新发起请求去请求其后面的节点。

      Nginx是七层结构的,通过nginx本身来转发,可以有多种方式进行负载均衡,实现的功能多,nginx可以分业务

      LVS是四层结构的,通过转发数据包mac或ip头部,不能对数据进行修改,来实现的负载均衡,实现的功能少但效率高,LVS的WEB内容都给是一样的

       

      实现Nginx负载均衡的组件主要有两个,如下表

      负债均衡组件。.png-45.9kB

       

      反向代理与负载均衡搭建

       

      硬件准备

      准备3台VM虚拟机(有物理服务器更佳)都需要安装Nginx服务

      Nginx反向代理

      NginxWebA

      NginxWebB

      image_1crp57ne91mjek0c1q9v1js41iahs.png-6.8kB

       

      安装依赖软件包

      yum -y install openssl openssl-devel pcre pcre-devel

      rpm -qa openssl openssl-devel pcre pcre-devel

      三台都需要安装支持包

      image_1crp58vobfo7pno7v71usl9pq19.png-20.2kB

       

      软件包准备

      nginx-1.10.2.tar.gz

      image_1crp5ad1rtscc221q9v1hm51j9v1m.png-10.5kB

       

      安装Nginx服务

      useradd -M -s /sbin/nologin nginx

      tar xf nginx-1.10.2.tar.gz -C /usr/src

      cd /usr/src/nginx-1.10.2

      ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install

      ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ --->软链接可做可不做

      egrep -v "#|^$" nginx.conf.default > nginx.conf --->把配置文件多余的东西过滤掉

      这里只编译了一个截图,三台虚拟机的步骤都是一样的

      image_1crp6k368e75d611ho2oud9mm9.png-51.9kB

       

      简单的Nginx反向代理配置文件

       
      1. worker_processes 1;
      2. events {
      3. worker_connections 1024;
      4. }
      5. http {
      6. include mime.types;
      7. default_type application/octet-stream;
      8. sendfile on;
      9. keepalive_timeout 65;
      10. upstream www_server {
      11. server 192.168.200.68:80 weight=1;
      12. server 192.168.200.69:80 weight=1;
      13. }
      14. server {
      15. listen 80;
      16. server_name sl.yunjisuan.com;
      17. location / {
      18. proxy_pass http://www_server;

        反向代理与负载均衡概念简介

        严格地说,Nginx仅仅是作为Nginx Proxy反向代理使用的,因为这个反向代理功能表现的效果是负载均衡集群的效果,所以本文称之为Nginx负载均衡。那么,反向代理和负载均衡有什么区别呢?

        普通负载均衡软件,例如大名鼎鼎的LVS,其实功能只是对请求数据包的转发(也可能会改写数据包),传递,其中DR模式明显的特征是从负载均衡下面的节点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真实用户,而反向代理就不一样了,反向代理接收访问用户的请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用户,在节点服务器看来,访问的节点服务器的客户端用户就是反向代理服务器了,而非真实的网站访问用户。

        一句话,LVS等的负载均衡是转发用户请求的数据包,而Nginx反向代理是接收用户的请求然后重新发起请求去请求其后面的节点。

        Nginx是七层结构的,通过nginx本身来转发,可以有多种方式进行负载均衡,实现的功能多,nginx可以分业务

        LVS是四层结构的,通过转发数据包mac或ip头部,不能对数据进行修改,来实现的负载均衡,实现的功能少但效率高,LVS的WEB内容都给是一样的

         

        实现Nginx负载均衡的组件主要有两个,如下表

        负债均衡组件。.png-45.9kB

         

        反向代理与负载均衡搭建

         

        硬件准备

        准备3台VM虚拟机(有物理服务器更佳)都需要安装Nginx服务

        Nginx反向代理

        NginxWebA

        NginxWebB

        image_1crp57ne91mjek0c1q9v1js41iahs.png-6.8kB

         

        安装依赖软件包

        yum -y install openssl openssl-devel pcre pcre-devel

        rpm -qa openssl openssl-devel pcre pcre-devel

        三台都需要安装支持包

        image_1crp58vobfo7pno7v71usl9pq19.png-20.2kB

         

        软件包准备

        nginx-1.10.2.tar.gz

        image_1crp5ad1rtscc221q9v1hm51j9v1m.png-10.5kB

         

        安装Nginx服务

        useradd -M -s /sbin/nologin nginx

        tar xf nginx-1.10.2.tar.gz -C /usr/src

        cd /usr/src/nginx-1.10.2

        ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install

        ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ --->软链接可做可不做

        egrep -v "#|^$" nginx.conf.default > nginx.conf --->把配置文件多余的东西过滤掉

        这里只编译了一个截图,三台虚拟机的步骤都是一样的

        image_1crp6k368e75d611ho2oud9mm9.png-51.9kB

         

        简单的Nginx反向代理配置文件

        1. worker_processes 1;
        2. events {
        3. worker_connections 1024;
        4. }
        5. http {
        6. include mime.types;
        7. default_type application/octet-stream;
        8. sendfile on;
        9. keepalive_timeout 65;
        10. upstream www_server {
        11. server 192.168.200.68:80 weight=1;
        12. server 192.168.200.69:80 weight=1;
        13. }
        14. server {
        15. listen 80;
        16. server_name sl.yunjisuan.com;
        17. location / {
        18. proxy_pass http://www_server;
        19. 配置文件详解:upstream >>服务器池   www_server>>服务器池的名字可随意
        20. weight >>权重。负载均衡是按照权重比例分配
        21. 配置服务器A的配置
          1. server {
          2. listen 80;
          3. server_name bbs.yunjisuan.com;
          4. location / {
          5. root html/bbs;
          6. index index.html index.htm;
          7. server {
            1. listen 80;
            2. server_name sl.yunjisuan.com;
            3. location / {
            4. root html/sl;
            5. index index.html index.htm;
            6. 默认的就没有添加,A和B一样
            7. 填充测试文件

               
              1. mkdir /usr/local/nginx/html/{sl,bbs}
              2. echo "`hostname -I ` sl" >> /usr/local/nginx/html/sl/index.html
              3. echo "`hostname -I ` bbs" >> /usr/local/nginx/html/bbs/index.html

              WEBB跟WEBA测试文件是一样的

               加入A和B的本地映射
            8. Nginx upstream模块介绍

              Nginx的负载均衡功能依赖于ngx_http_upsteam_module模块,所支持的代理方式包括proxy_pass,fastcgi_pass,memcached_pass等,新版Nginx软件支持的方式有所增加。本文主要讲解proxy_pass代理方式。

              ngx_http_upstream_module模块允许Nginx定义一组或多组节点服务器组,使用时可以通过proxy_pass代理方式把网站的请求发送到事先定义好的对应Upstream组的名字上,具体写法为“proxy_pass http:// www_server_pools”,其中www_server_pools就是一个Upstream节点服务器组名字。ngx_http_upstream_module模块官方地址为:http://nginx.org/en/docs/http/ngx_http_upstream_module.html

  • 相关阅读:
    Python 对数组元素操作的三种方法
    多任务学习Multitask Learning概述zz
    10个梯度下降优化算法+备忘单
    你应该知道的LightGBM各种操作!
    一文详解Softmax函数zz
    paddle中的LoDTensor
    linux 【监控io】iotop命令详解 规格严格
    [web部署] supervisor日志配置为服务 规格严格
    PostgreSQL安装完成后,参数调整 规格严格
    pg性能优化 规格严格
  • 原文地址:https://www.cnblogs.com/xuruqing/p/9995647.html
Copyright © 2020-2023  润新知