frp+nginx+xposed搭建xp模块集群

news2024/11/17 8:55:54

frpc+nginx+xposed搭建xp模块集群

  • 前言
  • 实现逻辑
  • 配置内网穿透
  • 实现负载均衡

前言

为了能够稳定的采集一些app的详情页数据,就得借助xposed,xposed跟NanoHTTPD配合使用就可以在手机端开启接口服务,直接调用手机端的接口就能获取我们想要的数据,但是一台设备往往会遇到风控问题,这时就需要一个集群。

实现逻辑

在这里插入图片描述
整个业务框架如上图所示,装了xp模块的手机和本地电脑通过frp进行内网穿透,这样就能外网访问到本地电脑和xp模块,同时本地电脑上通过nginx配置了负载均衡,这样就能把客户端的请求均匀的分配到不同的手机上。

配置内网穿透

准备一台云服务器,并安装好frp服务端,frp的下载安装这里就不赘述了,直接把配置贴出来。frps.ini配置:

[common]
token = 1234
bind_port = 7000
vhost_http_port = 8080

准备三台手机(根据自己业务来定),手机上需要安装frp安卓端app,点击右上角加号>>新增配置文本,配置好之后保存,分别命名为jdxp01、jdxp02、jdxp03。
在这里插入图片描述

jdxp01配置:

[common]
token = 1234
server_addr = 云服务器ip
server_port = 7000

[jdxp01]
type = tcp
local_ip = 127.0.0.1
local_port = 50000 # xp模块接口服务端口
remote_port = 5001

jdxp02配置:

[common]
token = 1234
server_addr = 云服务器ip
server_port = 7000

[jdxp01]
type = tcp
local_ip = 127.0.0.1
local_port = 50000 # xp模块接口服务端口
remote_port = 5002

jdxp03配置

[common]
token = 1234
server_addr = 云服务器ip
server_port = 7000

[jdxp01]
type = tcp
local_ip = 127.0.0.1
local_port = 50000 # xp模块接口服务端口
remote_port = 5003

再准备一台本地电脑,装好frp客户端,打开frpc.ini,配置如下:

[common]
token = 1234
server_addr = 云服务器ip
server_port = 7000


[tbapi]
type = http
local_port = 80
remote_port = 8080
custom_domains = 云服务器ip

设置完之后开启所有frp客户端

实现负载均衡

在本地电脑上装好nginx,打开nginx.conf,配置如下:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 50m;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    upstream jdxp {
        server 云服务器ip:5001;
		server 云服务器ip:5002;
		server 云服务器ip:5003;
        
    }
    
    server {
        listen       80;
        server_name  云服务器ip:8080;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            # root   html;
            # index  index.html index.htm;
            proxy_pass http://jdxp;
        }
    }

 



}

以上配置是以轮询的方式去分配流量,客户端访问8080端口,流量就通过内网穿透到了本地电脑,本地电脑再通过nginx负载均衡以轮询的方式将流量分配到5001-5003端口,5001-5003就会穿透到xp模块上。

配置完成后开启所有frpc客户端和nginx,通过8080端口调用xp接口测试一下,从返回的结果可以看出,每次请求都是分配到不同手机。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555026.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习】线性模型

文章目录 第三章:线性模型一、线性回归模型1.1、线性回归模型1.2、求解线性回归模型(时刻要分清维度)1.3、多输出线性回归模型 二、线性分类模型2.1、判别函数2.2、概率判别模型2.3、概率生成模型 第三章:线性模型 一、线性回归模…

怎么把视频压缩到500m以下?

如何把视频压缩到500m以下?视频文件通常是非常大的,特别是高清视频或超高清视频,因此压缩可以帮助将视频文件大小减小,在有限的存储空间中存储更多的视频文件。较大的视频文件在上传和下载时需要较长时间,而压缩视频文…

Flink学习——Flink中的时间语义和窗口

一、时间语义 1.1 为什么会出现时间语义? flink是一个大数据处理引擎,它的最大特点就是分布式。每一个机器都有自己的时间,那么集群当中的时间应该以什么为准呢? 比如:我们希望统计8-9点的数据时,对并行任…

使用RSD从DEM数据创建用户高程数据层

李国春 SRTM90和Aster DEM的V2/V3是比较常用的免费共享高程数据。用户下载好以后应用到自己的项目时,经常会需要进行拼接合成和投影重采样等。RSD提供了一种创建自己项目的高程数据的方法。 一. 高程图像生成方法 在自己的项目中,选择图1的菜单。 图1…

使用LabVIEW AI视觉工具包快速实现SIFT特征检测(含源码)

‍‍🏡博客主页: virobotics的CSDN博客:LabVIEW深度学习、人工智能博主 🎄所属专栏:『LabVIEW深度学习实战』 🍻上期文章: 使用LabVIEW AI视觉工具包快速实现霍夫圆和霍夫直线检测(含…

Jmeter事务控制器聚合报告

Jmeter 事务控制器。 在Jmeter中,默认一个取样器就是一个事务事务控制器控制其子集取样器,合并为一个事务 添加:逻辑控制器/Logic Controller -> 事务控制器/Transaction Controller TPS: 服务器每秒处理的事务数在事务控制器下添加多个…

海康威视iVMS综合安防系统任意文件上传漏洞复现(0day)

0x01 产品简介 海康威视iVMS集中监控应用管理平台,是以安全防范业务应用为导向,以视频图像应用为基础手段,综合视频监控、联网报警、智能分析、运维管理等多种安全防范应用系统,构建的多业务应用综合管理平台。 0x02 漏洞概述 海…

利用CX-ONE搭建omron PLC仿真环境

目录 1 安装参考 2 CX-Simulator 2.1 打开软件 2.2 选择PLC配置文件存放位置 2.3 选择PLC类型 2.4 PLC Unit全部选择 2.5 设置FINS通讯 2.6 设置串口通讯 2.7 建立连接 3 CX-Programmer 3.1 新建工程 3.2 设置PLC型号 3.3 设置网络类型 3.4 设置串口通讯 3.5 设…

chatgpt在哪用?详谈一下gpt的各方面

ChatGPT是一种人工智能技术,它可以通过自然语言交互回答各种问题。这种技术已经被广泛应用于各个领域和场景中,帮助人们更好地获取知识和信息。那么,ChatGPT在哪里使用呢?下面我们来探讨一下。 一.chatgpt在哪用 打开任意的浏览器…

MSP 现场服务管理

什么是现场服务管理 现场服务管理 (FSM) 是确保有效规划、安排和执行现场服务活动所遵循的做法。它涉及有效利用资源,如人员、技术和材料,以满足客户的服务期限和标准。FSM还涉及现场技术人员,服务交付经理和其他利益…

救命稻草!阿里P8耗时5月打造的架构师速成手册,千金难求

前言 软件行业技术开发从业人员众多,很多程序员朋友在从业2-3年后都会进入一个迷茫期,面对个人发展的瓶颈。即如何从普通开发人员转型成高层次的系统架构师和技术管理人员。对程序员来说,架构师的薪资比较充满诱惑,年薪四五十万对…

Spring——Spring_XML实现DI

1.实现DI1 1.1DI给对象属性赋值 【1】通过set方法给对象属性赋值 <bean id"user2" class"org.example.User" ><property name"userId" value"1"></property><property name"uname" value"漳卅…

智能家居新选择,雷达感应器成品方案,人体存在感应控制照明联动

在现代社会&#xff0c;随着智能化技术的不断推进&#xff0c;人体存在感应控制照明已经成为了一项必备的技术手段。 ISE101T-5雷达感应器成品&#xff0c;作为一款拥有多种特点和优势的设备&#xff0c;不仅可以感应到室内的人体存在&#xff0c;还能够通过控制照明实现更为舒…

北京理工大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 计算机学院始建于1958年&#xff0c;是全国最早设立计算机专业的高校之一。2018年4月&#xff0c;计算机学院、软件学院、网络科学与技术研究院合并成立新的计算机学院。学院累计为国家培养各类人才15000余名。计算机科…

登录功能应该重点测试哪些方面,你都了解全面了么?

登录功能的测试是最常见也是最重要的&#xff0c;同时也是最容易被忽略的&#xff0c;关于登录功能的测试用例总结如下&#xff1a; 功能测试 输入已注册用户名和正确的密码&#xff0c;是否登录成功&#xff1b;输入已注册的用户名和错误的密码&#xff0c;是否登录失败&…

【OpenCV DNN】Flask 视频监控目标检测教程 02

欢迎关注『OpenCV DNN Youcans』系列&#xff0c;持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 01 【OpenCV DNN】Flask 视频监控目标检测教程 02 【OpenCV DNN】Flask 视频监控目标检测教程 02 3.1 从URL地址读取图片进行处理3.1.1 从指定的 url 地址读取图像3.1.2 …

C++学习之路-开始

引言 C在人们的眼中通常是“复杂”一词的代表&#xff0c;但其实C有严谨的体系结构&#xff0c;以C构建起来的工程不仅严谨并且执行速度非常快。计算机科学本就是一门工程学科&#xff0c;C就相当于是一种搭建房子的基础方法&#xff0c;学完C我们将得到一把强而有力武器来武装…

2023-5-22-C++异常处理机制学习

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

Go语言核心编程-函数、包和错误处理

第 6 章 函数、包和错误处理 6.1 为什么需要函数 6.1.1请大家完成这样一个需求: 输入两个数,再输入一个运算符(,-,*,/)&#xff0c;得到结果.。 6.1.2使用传统的方法解决 走代码 分析一下上面代码问题 上面的写法是可以完成功能, 但是代码冗余同时不利于代码维护函数可以解…