• linux_nginx反向代理


    什么代理?

           代理他人工作

    什么是正向代理和反向向代理,他们之间的区别?

           这两个代理很类似,但扮演了两个不同角色,一个站在用户角度,一个站在服务端角度

           正向代理: 帮助用户请求服务

           返向代理:帮助服务均衡用户的请求

    Nginx反向代理使用

           Nginx支持L7,1.9以上版本支持L4

           # L7 L4 相当于网络7层模型,L7表示应用层, L4表示传输层

           依赖模块:

                  ngx_http_proxy_module          

         # proxy代理模块,用于把请求抛给服务器节点或upstream服务池

        ngx_http_upstream_module

               # 负载均衡模块,可以实现网站的负载均衡功能和节点的健康检查

    Nginx反向代理配置:

           # 中小企业大量使用

      1. 反向代理环境安装

        和Nginx环境安装一样 linux_nginx环境安装

      2. 更改配置文件

        其配置文件位置: /application/nginx/conf/nginx.conf

    # 其配置添加在 http 模块中
    
    upstream www_server_pools {                       
    # 反向代理upstream声明,后面是名字,用在location中表示跳转到反向代理服务器
      server 10.0.0.8:80 weight=1;
      server 10.0.0.9:80 weight=1;                 
    # weiht表示权重,越大获得的请求越多,这个ip地址是web服务的地址
    # weight一样,雨露均沾,也就是说可以从这里,指向更改了端口号的web服务器
    # 雨露均沾就会有个问题,客户登录认证时候,在不同的web服务中跳转,重复认证问题,可以添加 ip_hash; 这个解决一个用户连接,只能固定使用同一个web服务器提供服务
    }
    
    # 主配置文件中server绑定域名
    server {
            listen       80;
            server_name  www.yunhello.cn;                           # 代理服务器绑定域名
            location / {
                   proxy_pass http://www_server_pools;              # 跳转到反向代理
         proxy_set_header Host $host;                        # 传递请求头
         proxy_set_header X-Forwarded-For $remote_addr;        # 传递客户端源地址
               }
    }
    
    # 这样的话,用户通过域名访问web服务,首先是到负载均衡服务,然后负载均衡代替用户向web服务请求,对用户来说,和直接访问web服务没有区别
    
    # 可是这样的访问,无法获取用户的请求头信息和来源ip信息
    # 在location中添加下面这两行
    # proxy_set_header Host $host;                                  # 传递用户的请求头
    
    # proxy_set_header X-Forwarded-For $remote_addr;                # 传递用户访问ip地址
    
    # 在web服务中,需要激活access_log 默认格式配置 $http_x_forwarded_for字段显示用户源ip,然后再每个站点的server中指定各个站点单独的access.log 中应用主配置文件中main格式

    如何实现Nginx服务的高可用?

           主Nginx负载均衡器宕机了,备负载均衡顶替上去

        1. 安装keepalived模块

    yum install keepalived -y 

        2. 配置文件为 /etc/keepalived/keepalived.conf

    # keeplived不仅仅是ip的管理,还有资源的管理,ivs管理,需要把除了ip管理其他的都干掉,其他功能并不需要,更改为以下内容,多余全部删掉
    
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
       qq@qq.com                                    # 个人邮箱,一般不用,使用监控软件实现监控
       }
       notification_email_from qq@qq.com            # 邮箱
       smtp_server 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL                          # 备需要更改一下,不能一样
    }
    
    vrrp_instance VI_1 {
        state MASTER                                # 主,备需要改为 BACKUP
        interface eth0                              # 通信网卡,默认绑定辅助ip的网卡
        virtual_router_id 51                        # 实例id,用这个来区分主主备是不是一个实例
        priority 150                                # 优先级,数字越大优先级越高
        advert_int 1                                # 心跳间隔
        authentication {
            auth_type PASS                          # 两台负载均衡之间通信密码
            auth_pass 1111
        }  
    
        virtual_ipaddress {
    
        10.0.0.3                                    # 辅助ip地址一样,当主挂了,备就使用这个辅助ip
    
        }  
    
    }
    
    # 然后用户请求,将会直接到达这个辅助ip,然后通过这个辅助ip访问代理,实现web访问                            
    

      

  • 相关阅读:
    Masonry介绍与使用实践:快速上手Autolayout
    OC文件大小的计算方法,多用于清理缓存
    OC接收数据时毫秒转date时间最简略方法
    使用OC语言编写两个超大数相乘或相加的算法的思路和超大正整数相乘的代码
    简述AFN(AFNetWorking 2.X)的实现分析和简单使用【转】
    iOS开发中xib和Storyboard中需要注意的事项
    如何将UISearchBar上"Cancel"按钮改为”取消“?
    iOS开发中关于本地数据中SQLite数据库常用的SQL语句
    UItableViewCell上的button点击无响应的办法
    UIScrollView的几个要点总结
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/8126066.html
Copyright © 2020-2023  润新知