跳至主要內容

系统安装

大约 5 分钟

系统安装

Malenia系统支持三种安装方式,分别兼顾快速上手、扩展定制、性能优化等不同场景

裸机部署

请注意,malenia是一个需要高度性能调优的网络程序,在生产环境我们更加建议使用裸机部署的方式,而不建议使用k8s、docker等容器环境, malenia隐藏在内部的组件和模块其实非常复杂,在您生产使用的时候,有可能需要联系我们进行一些性能调优、问题排查等实际需求,此时使用docker环境将会严重缺少相关工具, 这将导致无法最大化利用物理机器性能、无法排查某些场景的运行时bug等问题。

安装准备

  • 下载安装包open in new window
  • 安装 jdk1.8+(如果有可能,建议用户选择jdk11以上,将会具有更好的GC性能)
  • 安装 mysql,或者购买 mysql 服务

配置和初始化

支持Windows/Linux和MacOS,最低要求2G内存,作为代理服务器建议带宽至少选择4兆。

  • 解压安装包
  • 数据库配置初始化配置在:assets/ddl.sql,请根据本 sql 文件进行数据库建表初始化
  • conf 文件夹的相关配置
    • 项目使用 springboot,其中项目可选配置在 conf/application.properties,请在这里配置您的数据库链接信息(数据库为您上一步完成的 mysql 安装和数据库配置)
    • conf/static/*为前端资源,如果你想替换前端网页皮肤,则可以替换这里的内容 malenia 前端是开源的,支持二开的
    • conf/static/malenia-doc/*为文档资源,如果你想修改文档内容,则可以编辑这里
  • 如果你需要完整的支持mitm功能的话,你需要额外的注意一下环境
    • brotli(br)压缩算法
      • windows: 请安装微软c++运行时(Microsoft Visual C++ Redistributable)
      • 其他os:无此要求
    • alpn(支持http2.0)
      • 当jdk=oracle jdk 1.8时,需要安装open ssl

启动和运行

  • 执行bin/startup.sh (如果是 windows,那么执行 xxx.bat 即可)
  • 观察日志是否正常
  • 网站第一个完成注册的账户会自动变成管理员,其他后续账户都会被设定为普通账户,您后续可以在操作页面设定其他管理员。
  • 系统默认配置embed代理服务器,以及使用embed代理服务器配置默认产品,用户可以使用内置模拟资源完成配置参考。也可以在已有配置上进行修改
  • 系统默认为第一个管理员进行初始化充值

分布式部署

分布式部署流程非常简单,只需要将您刚编辑好的安装包文件夹复制到多台服务器并完成启动即可。但是需要注意您的mysql多台服务器鉴权。 分布式环境要求malenia系统的多台服务器都运行在公网并且可以相互通信。

https网站

正常情况malenia不适合和nginx配合,因为他和nginx都为http网关。如果你需要给malenia增加https,建议给裸网站直接配置ssl证书,请将申请到的ssl证书放到conf目录下, 并修改配置文件: appliation.properties

server.port=443
server.ssl.key-store=classpath:ssl_key_store_file.pfx
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=the-password

malenia使用springboot开发,底层内置tomcat服务器,参考网上的任何关于springboot配置https证书的教程均可

一个环境冲突问题

为了对http2.0进行mitm,我们需要使用 TLS ALPN协议,但是这个协议在oracle jdk1.8的实现并不完整。 这会导致:《oracle jdk && <=1.8 && mitm && https》组合的https请求转发失败。

你可以做以下任何一种策略绕过这个问题:

  1. 使用openJDK
  2. 使用jdk 1.9+
  3. 确保你的主机环境安装了完整的openSSL库,malenia将会尝试使用openSSL方案

docker-all-in-one

如果您想快速体验malenia,可以通过如下脚本一键拉起malenia,请注意,原则上不建议此中部署方式上生产,一键拉起的系统和手动部署的系统其功能和行为保持一致, 但是其性能和稳定性无法做到最优

# 安装docker
yum install -y docker
# 下载镜像:
docker pull registry.cn-beijing.aliyuncs.com/iinti/common:malenia-allInOne-latest;
# 启动sekiro服务器
docker run -d -p 5810:5810 -p 9090-9095:9090-9095 -v ~/malenia-mysql-data:/var/lib/mysql --name malenia-all-in-one registry.cn-beijing.aliyuncs.com/iinti/common:malenia-allInOne-latest

docker-compose

如果您不太了解java,也可以使用docker-compose的方式进行部署,

此中部署方式可以支持多个节点的分布式,但是您需要手动修改部分docker-compose.yaml定义

安装ocker-compose 环境

已经安装过docker和docker-compose的请略过此步骤

# 如果你的服务器长期没有更新,那么建议更新一下
sudo yum clean all
sudo yum makecache
sudo yum update

# 安装docker(系统依赖升级到最新,这里一般不会报错,如果报错请走一遍第一步,可以考虑使用阿里云的yum镜像)
sudo yum install -y yum-utils  device-mapper-persistent-data  lvm2
sudo yum-config-manager  --add-repo   https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

# 设置docker开机自启动
sudo systemctl start docker 
sudo systemctl enable docker
systemctl enable docker.service
systemctl start docker.service

# 安装docker-compose,这里使用了pip的方式
sudo pip install docker-compose

启动malenia

执行命令:

curl https://oss.iinti.cn/malenia/quickstart.sh | bash

访问网站:http://127.0.0.1:5810/open in new window,首次打开网站请注册账户,第一个注册账户将会成为管理员

  • 请预先安装好dockerdocker-compose
  • 服务依赖MySQL启动,使用Docker-compose 首次启动数据库较慢,
  • 可能会 malenia-server启动失败, 这种情况确认数据库启动成功后,直接docker restart malenia-server
上次编辑于:
贡献者: iinti_cn