MoreAPI_PRO项目部署方式

一、部署准备

MoreAPI_Pro项目部署需要Linux环境,服务器配置为2*2轻量型应用服务器。由于项目使用Python开发,所以需要Python环境。本次部署所需环境如下:

  • CentOS 7.9.2009 x86_64(Py3.7.9) 宝塔面板8.0.5
  • Python >= 3.10.0
  • MySQL 8.0
  • Redis

二、环境搭建

准备一台全新的服务器,安装完宝塔面板后进入,安装nginxMySQL。然后等待安装任务完成。在左侧菜单栏软件商店搜索redis安装。

image-20240131094511065
image-20240131100210902

以上安装完成后,点击左侧菜单栏网站,选择Python项目安装Python环境,点击Python管理器,选择安装Python3.10.0。等待Python安装完成。

image-20240131101007255

三、安装项目

以上环境安装全部完成后,就可以上传源码并安装了。

上传源码

点击左侧菜单栏文件,选择进入/www/目录,新建文件夹并命名为MoreAPI_Pro,然后将官网下载的MoreAPI_Pro源码上传至新建的文件夹中解压缩。

image-20240131101505753
image-20240131101523658

安装

文件上传并解压后,点击菜单栏左侧的网站–>点击Python项目–>点击添加Python项目

image-20240131101935274

最后点击提交,开始自动创建虚拟环境,等待项目创建完成。下面开始配置项目

配置

进入项目目录,再进入项目目录中的applications文件夹,找到config.py文件,点击编辑文件,可以看到项目的MySQL配置、redis配置、开关配置都在此文件中。 (每次修改项目文件都要重启服务方可生效)

image-20240131102410154

该配置文件中的内容如下:

#!/usr/local/bin/python3
# -*- coding: utf-8 -*-
​
"""
@Project : MoreAPI_PRO
@File   : config.py
@Author : MoreCoding多点部落
@Time   : 2023/11/22 8:59 AM
"""
import logging
​
​
​
class BaseConfig:
​
   # 访问日志开关
   ACCESS_LOG = True
   # Sanic 拓展启用开关
   AUTO_EXTEND = True
   # 自动重载开关
   AUTO_RELOAD = True
   # 自动注册信号开关(开启后不存在的事件将会自动注册)
   EVENT_AUTOREGISTER = True
   # 异常返回格式
   FALLBACK_ERROR_FORMAT = 'json'
   # 客户端 IP 和代理 IP:X-Forwarded-For
   # FORWARDED_FOR_HEADER = "X-Forwarded-For"
   # 是否启用应用程序注册表
   REGISTER = True
   REQUEST_BUFFER_QUEUE_SIZE = 100
   REQUEST_ID_HEADER = "X-Request-ID"
   REQUEST_MAX_SIZE = 100000000
   REQUEST_MAX_HEADER_SIZE = 8192
   REQUEST_TIMEOUT = 600
   RESPONSE_TIMEOUT = 600
​
​
   SECRET_KEY = "zmDqprwgDyOjnQGTwbSChsL2kQ"
​
   # mysql 配置
   MYSQL_USERNAME = ""  # 数据库用户名
   MYSQL_PASSWORD = ""  # 数据库密码
   MYSQL_HOST = ""  # 数据库地址
   MYSQL_PORT = 3306
   MYSQL_DATABASE = ""  # 数据库名
​
​
   # redis 配置
   REDIS_PASSWORD = ""  # redis密码
   REDIS_HOST = "127.0.0.1"  # redis端口号
   REDIS_PORT = 6379  # redis端口
   REDIS_DATABASE = 5  # redis数据库号
   REDIS = f"redis://{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/{REDIS_DATABASE}?max_connections=10"
​
​
​
   # 默认日志等级
   LOG_LEVEL = logging.WARN
​
   # 流冠代理配置 https://www.hailiangip.com/personal/flow
   LG_ORDER_ID = ""  # 代理订单号
   LG_ORDER_PASSWORD = ""  # 代理订单密码
   LG_ORDER_HOST = "flow.hailiangip.com"  # 代理地址
   LG_ORDER_PORT = "14223"  # 代理端口号
​
   # 巨量代理配置 https://www.juliangip.com/user/reg?inviteCode=1022456
​
   JL_ORDER_ID = ""
   JL_API_KEY = ""
   JL_IP_NUM = "10"
​
   # 阿里云短信配置
   ALI_ACCESS_KEY_ID = ""  # 用户ACCESS_KEY_ID
   ALI_ACCESS_KEY_SECRET = ""  # 用户ACCESS_KEY_SECRET
   ALI_SIGN_NAME = ""  # 签名名称
   ALI_TEMPLATE_CODE = ""  # 模板ID
​
   # 系统功能设置 (需保证数据库配置正常 并迁移)
   ENABLE_PROXY = False  # 是否开启网络代理
   PROXY_NAME = "LG"  # JL:巨量代理   LG:流冠代理
   ENABLE_ALI_SMS = False  # 是否开启阿里云短信(仅用于用户模块)
   ENABLE_API_AUTHORIZATION = False  # 开启API认证
   ENABLE_API_LOG = False  # 开启日志记录
   ENABLE_POOLS = False  # 开启cookie池 (优先级:请求携带cookie > MoreCookie > cookie池 > 默认cookie)

·

配置文件默认关闭网络代理、系统认证、日志记录、cookie池等功能。

网络代理功能配置详见下方说明

cookie池、日志、认证等功能需要MySQL支持,在上方配置上自己的MySQL数据库相关的就可以了,然后还需进行数据迁移

以下是我的配置

image-20240131104320844

数据迁移

配置文件中的数据库配置完成后,方可进行数据迁移,数据迁移后才能使用数据库相关。因为项目采用aerich+tortoise-orm,aerich要在虚拟环境中运行,我们现在开始找到此项目的虚拟环境安装位置。虚拟环境安装位置一般默认在/www/server/pyporject_evn目录。

image-20240131103451029

下面进入项目目录/www/MoreAPI_Pro,调用上方虚拟环境中的aerich命令进行数据迁移,在项目目录中打开终端输入以下命令:

/www/server/pyporject_evn/MoreAPI_Pro_venv/bin/aerich init -t applications.tortoise.TORTOISE_CONFIG  # 虚拟环境路径+/bin/aerich init -t applications.tortoise.TORTOISE_CONFIG
/www/server/pyporject_evn/MoreAPI_Pro_venv/bin/aerich init-db

如出现如下图所示,则表示数据迁移成功。如果报错,请检查是否在项目目录中执行以上命令、虚拟环境路径是否正确。

image-20240131104415265

如果数据迁移过程出现报错,请先项目目录中的以下两个文件删除,再次执行数据迁移操作。

image-20240131103918477

四、大工告成

以上操作完成后,返回Python项目,将启动用户改为root(防止部分机器创建文件权限不足),重启服务即可,

image-20240131105034590
image-20240131105101759

我们找个API请求工具测试一下,完美运行。

image-20240131105223783

注:常见问题

一、代理配置

项目分为两个代理可供选择:

  • 流冠代理(隧道代理,每次请求更换IP,消耗流量)
  • 巨量代理(不限量代理, 每30秒获取一次IP,每次获取10个,随机调用。依托于redis)

流冠代理配置

进入流冠代理官网(杭州流冠科技有限公司-流冠IP代理-高匿HTTP-在线代理ip-隧道代理-千万IP服务供应商 (hailiangip.com)),注册账号并实名认证后,选择购买动态代理–流量计费方式

image-20240131105720855

购买成功后,进入个人中心–>订单管理–>流量订单,找到刚才购买的代理,点击进入详情

image-20240131105903762

进入详情后,点击配置订单密码,和配置白名单,将服务器IP填写进白名单中。

image-20240131110048411

然后进入MoreAPI_Pro项目目录,进入applications文件夹,找到config.py配置文件,将刚刚购买的订单号和配置的订单密码填写进配置文件,然后将下方的代理功能打开。PROXY_NAME填写LG即可。重启MoreAPI_Pro服务即可。

image-20240131110349067

巨量代理配置

进入巨量代理官网:https://www.juliangip.com/user/reg?inviteCode=1022456,注册账号并实名认证后,选择购买套餐,选择不限量代理套餐,根据个人需求选择。

image-20240131110627959

购买后,进入个人中心–>产品管理–>动态代理(不限量)–>设置授权信息,设置白名单为自己的服务器IP

image-20240131111015818

然后进入MoreAPI_Pro项目目录,进入applications文件夹,找到config.py配置文件,将刚刚购买的不限量套餐业务号和授权信息的API密钥填写进配置文件,然后将下方的代理功能打开。PROXY_NAME填写JL即可。重启MoreAPI_Pro服务即可。

日志相关

MoreAPI请求日志存储在数据库中,要开启日志,需要在MoreAPI_Pro项目目录,进入applications文件夹,找到config.py配置文件,将ENABLE_API_LOG设置为True,然后重启服务。要查看请求日志,需借助数据库连接软件,找到相关的表,进入查看即可

image-20240131111621633

Cookie池相关

MoreAPI_Pro项目集成cookie池功能,cookie池功能默认关闭的,可通过进入MoreAPI_Pro项目目录,进入applications文件夹,找到config.py配置文件,将ENABLE_POOLS设置为True,然后重启服务即可。MoreAPI_Pro接口文档中有cookie池相关API,通过API,可对相对应平台的cookie进行增删改查操作。

注:每个平台的cookie都需要在登录后,获取首页的cookie才能生效

项目目录讲解

--MoreAPI_PRO                 # 项目根目录
----applications             # 程序主文件夹
------common                 # api通用工具目录
------extensions             # api扩展工具目录
------models                 # 数据库文件目录
------views                   # 项目视图目录
------__init__.py             # 程序主入口
------config.py               # 程序配置文件
------tortoise.py             # 数据ORM配置文件
----core                     # 核心目录
------listener               # 监听目录
------middlewares             # 中间件目录
------__init__.py            
----libs                     # 程序工具目录
----app.py                   # 运行文件
© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容