PageAdmin CMS实现后台内网和前台外网分离部署的教程

简介: 本项目基于PageAdmin CMS平台版构建市级政务站群,后台部署于内网麒麟V10服务器,前端HTML静态化生成并推送至对外服务器;集成人大金仓数据库、中创中间件及阿里云OSS存储,通过lsyncd实现安全高效的跨服务器文件同步。

最近在做一个市级的政务站群项目,甲方要求后台不能暴露在互联网中,前端网页需要生成html并推送到另外一台对外的服务器。

本次项目大致方案如下:

管理系统:PageAdmin CMS平台版

分布式储存:阿里云OSS。

服务器两台:麒麟v10两台

数据库:人大金仓

中间件:中创

分部署缓存中间件:甲方没有要求,本次项目直接采用redis。

安装好以上所有产品和中间件后,本次项目重点步骤和注意事项:

一、进入后台开启静态功能和配置分布式储存参数

进入PageAdmin系统站点的后台管理>系统配置>应用设置,如下图
1.png

重点设置:

启动站点功能:设置为开启,PageAdmin平台版本默认是支持业务系统和网站统一构建,不开启前台网页会无法打开

站点静态功能:设置为默认开启

静态生成模式:由于前端模版是响应式,这里选择:不区分客户端,如果前端模版分pc和手机端模版,选择第二种模式:PC和手机端分别生成
附件集中储存:选择阿里云oss,配置好绑定域名,BucketName,AccessKeyId,AccessKeySecret,EndPoint(OSS端点)这些参数,这些参数开通阿里云oss后就可以获取到

二、生成Html页面

进入Html页面刷新菜单,如下图:
2.png

这里注意一下:第一次需要全量生成所有页面,以后编辑修改栏目、发布编辑新内容都会自动生成新的html页面。

首页,所有栏目页,所有内容页,所有专题页面全部生成一次,生成结果会通过站内信息异步通知,这里不需要等待,可以去做其他事情即可,异步通知中会有详细的日志,包括生成数量,错误次数,错误地址,错误原因等详细描述,这里比较简答不赘述。

PageAdmin的静态文件默认生成到网站根目录下的html>站点编号>pc目录中,由于是响应式站点,所以静态html都在pc目录中。

重点:PageAdmin修改编辑栏目默认只会更新前10页(可在配置文件中配置数量),如果你的栏目列表超过10页面,需要手工点击更新栏目按钮才能所有所有的分页,这里有个小技巧,可以通过系统自带的页面静态方案来自动生成,静态方案页面可以配置需要定时更新的栏目,定时执行时间,支持选择具体时间和cron表达式两种模式,比如可以每天晚上11点更新所有栏目页面,这里就减少很多运维工作。

三、Html文件跨服务器推送

html文件跨服务器推送有很多方案,由于两台服务器在同一个局域网段,目前局域网主流两种同步方案有:inotify‑wait + rsync和lsyncd,小编这里使用lsyncd方案,这步主要是配置服务器,下面做一些简单的配置介绍,具体不懂的大家可以自行Ai搜索。

lsyncd方案说明:底层封装 inotify,收集文件事件,合并批量触发 rsync,避免文件频繁改动时疯狂调用 rsync 进程,性能远高于裸写 inotifywait 脚本。

不废话,直接上安装说明
步骤1、源机器安装 lsyncd rsync

yum install -y lsyncd rsync

步骤2、配置 SSH 免密(必须!否则同步会卡住要密码)

# 生成密钥,一路回车,不要设置密码

ssh-keygen -t ed25519

# 推送公钥到目标机器IP,替换为你的目标IP,这里回要求输入目标机器的密码。
ssh-copy-id root@目标ip

推送成功后,一定要测试一下是否真的免密了。

ssh root@目标ip

能直接登录成功,说明免密成功,一定要测试,不能成功按下免顺序排查:
2.1. ✔源机器:ssh-keygen -t ed25519 生成密钥,密钥不要设置 passphrase 密码
2.2. ✔源机器:ssh-copy-id root@目标ip推送公钥
2.3. ✔目标机器:PubkeyAuthentication yes 开启公钥认证,sshd -t校验,reload sshd
2.4 ✔目标机器权限:

chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

2.5. ✔目标机器

SELinux:`restorecon -Rv /root/.ssh`

2.6. ✔源机器手动 ssh 测试免密登录,必须成功,再启动 lsyncd

步骤3、两边创建目录

#源机器

mkdir -p /data/www_src

#目标机器

mkdir -p /data/www_dst

步骤4:编写 lsyncd 配置文件

主配置文件路径:/etc/lsyncd.conf

先备份原始文件

cp /etc/lsyncd.conf /etc/lsyncd.conf.bak

清空,写入下面完整配置:

cat > /etc/lsyncd.conf <<'EOF'
settings {
   
    logfile      = "/var/log/lsyncd.log",
    statusFile   = "/var/log/lsyncd.status",
    inotifyMode  = "CloseWrite",
    delay        = 1,
    maxProcesses = 4,
}

sync {
   
    default.rsyncssh,
    source    = "/data/www_src/",
    host      = "目标ip",
    targetdir = "/data/www_dst/",
    rsync = {
   
        archive  = true,
        delete   = true,
        compress = false,
    }
}
EOF

参数小白解释
source = "/data/www_src/" 末尾斜杠不能丢:同步文件夹里面所有文件,不是同步文件夹本身
inotifyMode = "CloseWrite":文件写完关闭后才同步,防止同步半截写入损坏文件
delay = 1:事件合并延迟 1 秒;大量文件修改不会疯狂启动 rsync 进程
delete = true:源删除文件,目标机器也同步删除。测试阶段建议改为 false,确认业务没问题再打开 true!
host:你的目标服务器 IP
targetdir:目标机器目录

多目录同步:写多个 sync{...} 块即可。

步骤5:调内核 inotify 参数(必做!文件多会报错)

inotify 默认监听文件数量有限,静态站点、大量小文件场景必须调大。

cat >> /etc/sysctl.conf <<'EOF'
fs.inotify.max_user_watches = 1048576
fs.inotify.max_user_instances = 2048
EOF

sysctl -p

查看是否生效

cat /proc/sys/fs/inotify/max_user_watches

步骤六:启动服务

# 设置开机自启并启动
systemctl enable --now lsyncd

# 查看状态
systemctl status lsyncd
绿色 active (running) 代表正常运行。
如果报错,看日志排查。

步骤七:测试同步

在源机器创建测试文件

touch /data/www_src/test01.txt
echo "hello lsyncd" > /data/www_src/test02.txt

去目标机器查看是否自动生成文件

ls /data/www_dst/

删除源文件测试 delete 效果(delete=true 才生效)

rm -f /data/www_src/test01.txt

步骤八:日志查看(排错最重要)

实时看运行日志

tail -f /var/log/lsyncd.log

看状态文件,当前监听目录

cat /var/log/lsyncd.status

常见报错查看:

journalctl -u lsyncd -f

⚠️小白高频踩坑清单

❌路径末尾斜杠丢失/data/www_src → 会把 www_src 整个文件夹同步到目标目录下;/data/www_src/ → 同步文件夹内部所有文件,配置必须带末尾 /。
❌ssh 免密失败 lsyncd 不会弹出密码输入框,直接同步失败;先手动 ssh 测试确认免密可用。
❌delete=true 风险很高 会删除目标机器多余文件,刚部署务必设置 delete=false 测试,业务验证没问题再开启。
❌大文件写入 大文件拷贝时,lsyncd 检测到 close_write 才同步;如果经常同步半截文件,把 delay 调大到 2~3。
❌权限问题 源目录、目标目录读写权限;ssh 用户要有目标目录写入权限。
❌防火墙 源机器能通目标机器 22 端口;防火墙放行 ssh。
❌双向同步 lsyncd 只适合单向:源→目标;不要两边互相 lsyncd,会造成循环同步灾难。双向同步用分布式存储。

常用操作命令

# 重启lsyncd(修改配置后必须重启)

systemctl restart lsyncd

# 停止服务
systemctl stop lsyncd

# 关闭开机自启
systemctl disable lsyncd

扩展:过滤不需要同步文件示例

如果想忽略日志、临时文件,rsync 增加 exclude 参数:

rsync = {
   
    archive  = true,
    delete   = true,
    compress = false,
    _extra = {
   "--exclude","*.log","--exclude","tmp/"}

到这里,PageAdmin CMS后台生成的html文件就可以同步到目标服务器,根据带宽情况,会有1-3秒的延迟,这个过程可以接受,这里比较麻烦的就是文件同步这块,第一次配置的朋友容易踩坑。

相关文章
|
1天前
|
前端开发 Java 测试技术
Maven 之工程构建与依赖管理全攻略
本文系统讲解Maven核心知识:涵盖POM/JAR/WAR工程类型与标准目录结构;详解构建生命周期(validate→compile→test→package→install→deploy)及常用命令;深入解析本地/远程/中央仓库机制,并指导配置本地仓库路径、阿里云镜像及JDK版本。内容精炼实用,助开发者快速掌握Maven项目管理精髓。
34 1
Maven 之工程构建与依赖管理全攻略
|
监控 Kubernetes 负载均衡
spring boot应用优化,6s内启动,内存减半
taptap-developer是一个spring boot框架驱动的纯Grpc服务,所以,只用了四步,移除了web和spring cloud相关的模块后,启动速度就稳稳的保持在了6s内。除了启动速度提升外,在服务待机状态下,内存锐减了50%左右,从500M左右的内存占用,缩减到了250M不到。
10369 113
spring boot应用优化,6s内启动,内存减半
|
1天前
|
XML 运维 Java
Tomcat 核心配置解析:4 大文件、乱码处理、端口与 Manager 配置
本文详解Tomcat四大核心配置文件(context.xml、web.xml、server.xml、tomcat-users.xml)功能与配置要点,涵盖控制台乱码解决、端口修改、Manager管理界面启用及用户权限配置,助你扎实掌握Tomcat运维关键技能。
25 0
Tomcat 核心配置解析:4 大文件、乱码处理、端口与 Manager 配置
|
运维 前端开发 应用服务中间件
jumpserver详解(六)——jumpserver luna组件安装
jumpserver详解(六)——jumpserver luna组件安装
495 1
|
数据库
达梦数据库的物理备份和还原简解
达梦数据库的物理备份和还原简解
1379 1
达梦数据库的物理备份和还原简解
|
测试技术 Swift 开发者
可调节推理预算,字节Seed团队开源大型语言模型 Seed-OSS 系列!
字节跳动 Seed 团队正式发布了 Seed-OSS 系列开源大型语言模型,提供强大的长上下文、推理、代理和通用功能,以及对开发者友好的多功能特性。
1162 9
|
5月前
|
监控 Java 测试技术
JMeterPlugins-Standard-1.4.0使用步骤详解(附JMeter插件安装与监控图表配置)
JMeterPlugins-Standard-1.4.0.zip是JMeter官方推荐的标准插件包,安装后可增强监控能力:提供响应时间趋势、TPS曲线、服务器性能(CPU/内存等)实时采集等功能,助你快速定位压测瓶颈。操作简单——解压→复制jar至lib/ext→重启即可生效。(239字)
|
4月前
|
JSON 前端开发 Linux
PageAdmin 统一身份认证平台 - 接入实施步骤
基于OAuth 2.0的统一身份认证平台,为多应用集群提供单点登录与统一授权。支持第三方应用接入及集中权限配置,提供标准API接口实现系统对接。
346 0
|
9月前
|
监控 安全 Linux
Rootkit检测利器rkhunter详解:原理、实践与渗透测试应用
rkhunter是一款开源Linux系统入侵检测工具,专用于检测Rootkit、后门及恶意软件。它通过MD5校验、文件权限检查、隐藏文件扫描、端口监听分析等多维度机制,识别系统异常。支持命令行交互与自动化扫描,可集成至安全巡检流程。广泛应用于渗透测试的后渗透阶段,辅助发现持久化威胁,是系统安全评估的重要利器。
1275 5
|
11月前
|
监控 前端开发 搜索推荐
新手如何创建网站,网站建设6个阶段
本文系统解析网站建设流程,涵盖战略规划、技术选型、设计开发三大阶段,为不同用户提供实用指南。
881 24

热门文章

最新文章