当前位置: 首页 > news >正文

Linux系统之部署SSCMS内容管理系统并实现外网访问

Linux系统之部署SSCMS内容管理系统并实现外网访问

  • 一、SSCMS介绍
  • 二、cpolar介绍
    • 2.1 cpolar简介
    • 2.2 cpolar使用场景
  • 三、本地环境介绍
    • 3.1 本地环境规划
    • 3.2 本次实践介绍
  • 四、本地环境检查
    • 3.1 检查Docker服务状态
    • 3.2 检查Docker版本
    • 3.3 检查docker compose 版本
  • 五、部署SSCMS服务
    • 4.1 创建SSCMS容器
    • 5.2 检查SSCMS容器状态
    • 5.3 SSCMS的初始配置
    • 5.4 访问SSCMS网站服务
  • 六、cpolar的初始配置工作
    • 6.1 登录cpolar官网
    • 6.2 安装cpolar工具
    • 6.3 启动cpolar服务
    • 6.4 查看cpolar版本
    • 6.5 token认证
    • 6.5 重启cpolar服务
  • 七、SSCMS服务的外网配置
    • 7.1 查看cpolar命令的帮助信息
    • 7.2 查看在线隧道
    • 7.3 访问cpolar web ui 管理界面
    • 7.4 查看默认的隧道列表
    • 7.5 公开本地web网站
    • 7.6 配置后台服务
    • 7.7 启动所有隧道测试
  • 八、在cpolar web ui中创建隧道
    • 8.1 创建隧道
    • 8.2 复制公网地址
    • 8.3 访问SSCMS网站服务

一、SSCMS介绍

SSCMS 基于 .NET Core,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大并易于维护的网站平台。

二、cpolar介绍

2.1 cpolar简介

cpolar极点云: 公开一个本地Web站点至公网,只需一行命令,就可以将内网站点发布至公网,方便给客户演示。高效调试微信公众号、小程序、对接支付宝网关等云端服务,提高您的编程效率。

2.2 cpolar使用场景

cpolar常用的使用场景:

  • 公开一个本地Web网站
  • 微信公众号开发调试
  • 在移动设备上测试
  • 远程控制树莓派

三、本地环境介绍

3.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostnameIP地址操作系统版本Docker版本内网穿透工具
jeven192.168.3.166centos 7.620.10.17cpolar

3.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎使用;
2.在Docker环境下部署SSCMS内容管理系统;
3.通过cpolar实现外网访问部署在内网中的SSCMS服务。

四、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2023-08-23 23:41:16 CST; 2 days agoDocs: https://docs.docker.comMain PID: 9562 (dockerd)Tasks: 75Memory: 550.6M

3.2 检查Docker版本

检查Docker版本

[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

[[root@jeven ~]# docker compose version
Docker Compose version v2.19.1

五、部署SSCMS服务

4.1 创建SSCMS容器

使用docker-cli命令快速创建SSCMS容器

docker run -d \--name my-sscms \-p 8011:80 \--restart=always \-v volume-sscms:/app/wwwroot \-e SSCMS_SECURITY_KEY=e2a3d303-ac9b-41ff-9154-930710af0845 \-e SSCMS_DATABASE_TYPE=SQLite \sscms/core

在这里插入图片描述

5.2 检查SSCMS容器状态

检查SSCMS容器状态,确保SSCMS容器正常启动。

[root@jeven ~]# docker ps
CONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS                    PORTS                                            NAMES
f4ee09c6548a   sscms/core             "dotnet SSCMS.Web.dll"   5 minutes ago   Up 5 minutes              443/tcp, 0.0.0.0:8011->80/tcp, :::8011->80/tcp   my-sscms

5.3 SSCMS的初始配置

访问地址:http://192.168.3.166:8011/,将IP替换为自己服务器的IP地址,进入到SSCMS后台管理页面。

在这里插入图片描述

点击进入后台管理后,对sscm初始化设置。
主要设置管理员账号和密码,其余默认配置即可。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

登录后台管理后,选择使用在线站点模板创建站点。

在这里插入图片描述

选择一个在线模板创建站点

在这里插入图片描述

设置站点信息:
站点名称:myweb;
站点类型:网站;
站点级别:主站;
其余默认,点击“创建站点”。

在这里插入图片描述
在这里插入图片描述

5.4 访问SSCMS网站服务

访问地址:http://192.168.3.166:8011/,进入SSCMS前台网站服务的首页。

在这里插入图片描述

六、cpolar的初始配置工作

6.1 登录cpolar官网

cpolar官网地址:https://www.cpolar.com/,注册账号及登录cpolar官网。

在这里插入图片描述

6.2 安装cpolar工具

在本地SSCMS服务器,由于本地服务器为centos7.6,执行以下命令,使用脚本一键安装cpolar。

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

在这里插入图片描述

6.3 启动cpolar服务

执行以下命令,启动cpolar服务。

systemctl enable cpolar && systemctl start cpolar

6.4 查看cpolar版本

查看cpolar版本

[root@jeven ~]# cpolar version
cpolar version 3.3.12

6.5 token认证

登录cpolar官网后,点击左侧的验证查看自己的认证token。

在这里插入图片描述

将token复制,把复制好的token执行如下命令:

cpolar authtoken tokenxxx

在这里插入图片描述

6.5 重启cpolar服务

使用以下命令,重启cpolar服务。

systemctl restart cpolar

查看cpolar服务状态

[root@jeven ~]# systemctl status cpolar.service
● cpolar.service - Cpolar ServiceLoaded: loaded (/etc/systemd/system/cpolar.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2023-10-18 03:23:30 CST; 14h agoDocs: https://www.cpolar.com/docsMain PID: 9320 (cpolar)Tasks: 16Memory: 49.3MCGroup: /system.slice/cpolar.service├─ 9320 cpolar: master process└─12616 cpolar: worker processOct 18 03:23:30 jeven systemd[1]: Started Cpolar Service.

七、SSCMS服务的外网配置

7.1 查看cpolar命令的帮助信息

使用help选项,查询cpolar命令的帮助信息。

 cpolar help

在这里插入图片描述

7.2 查看在线隧道

登录cpolar官网,点击左侧的状态,在线隧道列表显示默认创建的2条隧道:
1.website隧道,指向8080端口,
2.http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)。

在这里插入图片描述

7.3 访问cpolar web ui 管理界面

当我们在Linux上成功安装了cpolar,而我们可以使用cpolar的内网穿透功能,实现多种场景的应用。
可使用如下方式访问http://192.168.XX.XX:9200,默认在9200端口。打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

在这里插入图片描述

在这里插入图片描述

7.4 查看默认的隧道列表

cpolar安装成功后,默认会安装2条示例隧道,可以自行编辑或者删减:
1.ssh隧道:指向本地22端口,TCP协议;
2.website隧道:指向本地8080端口,HTTP协议。

在这里插入图片描述

7.5 公开本地web网站

创建http隧道,指向本地8011端口。

cpolar http 8011

有生成相应的公网地址,一个http协议,一个为https协议(免去配置ssl证书的繁琐步骤),将其复制下来。

在这里插入图片描述

访问测试,在浏览器地址: http://61f71e5c.r10.cpolar.top,就会访问到本地的SSCMS web服务了。

在这里插入图片描述

7.6 配置后台服务

由于以上命令暴露的公网地址在窗口关闭后隧道也将同步关闭无法访问,所以我们需要将参数保存到配置文件中。方便每次开机后,后台自启动运行隧道。

  • 编辑cpolar.yml文件
 vim /usr/local/etc/cpolar/cpolar.yml
  • cpolar.yml文件新增内容如下:
authtoken: xxxxxxxxxxxx #认证tokentunnels:websscms:proto: httpaddr: "8011"region: cn_vip

在这里插入图片描述

webstation:隧道名称,可以自定义
proto: 协议,如tcp或者http
region:线路地区:有cn cn_vip cn_top等,可自由选择,具体请参考官网文档——全球基础设施

7.7 启动所有隧道测试

执行以下命令,启动所有隧道测试。

cpolar start-all

在这里插入图片描述

在浏览器重新打开如上的cpolar地址。

在这里插入图片描述

使用https的cpolar访问地址,访问本地的SSCMS网站服务。

在这里插入图片描述

八、在cpolar web ui中创建隧道

8.1 创建隧道

在cpolar web ui 中,新建一条在线隧道:
隧道名称:可自定义,注意不要重复
协议:http
域名类型:选择随机域名
地区:选择China Top

在这里插入图片描述
在这里插入图片描述

8.2 复制公网地址

在线隧道列表中,复制公网访问地址。

在这里插入图片描述

8.3 访问SSCMS网站服务

在浏览器中,输入cpolar公网地址,可以成功访问到SSCMS网站服务,

在这里插入图片描述

相关文章:

Linux系统之部署SSCMS内容管理系统并实现外网访问

Linux系统之部署SSCMS内容管理系统并实现外网访问 一、SSCMS介绍二、cpolar介绍2.1 cpolar简介2.2 cpolar使用场景 三、本地环境介绍3.1 本地环境规划3.2 本次实践介绍 四、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 五、部署SSCMS服务…...

JVS-rules中的基础与复合变量:规则引擎的心脏

JVS-rules中的“变量”概念与编程语言中的变量类似,但它们通常在规则系统中处理条件判断、业务结果复制场景,如下所示: 条件判断:在规则引擎中,规则通常由两个部分组成:条件和分支。变量用于描述条件部分中…...

RN:指定模拟器启动

背景 我们启动 react native 项目的时候&#xff0c;会打开一个模拟器&#xff0c;但是有时不是我们想要的&#xff0c;我们如何去指定一个模拟器启动呢&#xff1f; IOS xcrun simctl list devicesyarn ios --simulator"<模拟器的UDID>"Android 目前没发现…...

【ARM Cache 系列文章 10 -- ARM Cortex-A720 Hunter 介绍】

文章目录 概述1.1 A720 Features1.1.1 core features1.1.2 Cache features1.1.3 Debug features 1.2 A720 组件介绍1.2.1 L1 缓存系统1.2.2 指令解码1.2.3 寄存器重命名1.2.4 指令分发单元1.2.5 向量执行单元1.2.6 加解密扩展单元1.2.6.1 有限域算法 1.3 接口1.4 GIC CPU Inter…...

深度学习——残差网络(ResNet)

深度学习——残差网络&#xff08;ResNet&#xff09; 文章目录 前言一、函数类二、残差块三、ResNet模型四、模型训练五、小结总结 前言 随着设计越来越深的网络&#xff0c;深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力&#xff0c…...

[java进阶]——IO流,递归实现多级文件拷贝

&#x1f308;键盘敲烂&#xff0c;年薪30万&#x1f308; 目录 一、认识IO流 二、了解编码与解码 二、IO流体系 三、字节输入输出流 四、字符输入输出流 五、多级文件拷贝 一、认识IO流 IO流也叫输入流(intput)、输出流(onput)&#xff0c;该流就像java程序同硬盘之间的…...

Linux创建与删除用户

Linux创建与删除用户 新增用户&#xff1a; adduser 用户名【添加用户】 passwd 用户名【设置用户密码】删除用户&#xff1a; userdel -r 用户名【删除用户】...

对传感器采样数据的低通滤波

低通滤波(Low-pass filter) 是一种过滤方式&#xff0c;规则为低频信号能正常通过&#xff0c;而超过设定临界值的高频信号则被阻隔、减弱。 一阶低通数字滤波器 滤波系数a越小&#xff0c;滤波结果越平稳&#xff0c;但是灵敏度低&#xff1b;滤波系数a越大&#xff0c;滤波结…...

Java开发树结构数据封装!

目录 源数据如下controller接口&#xff1a;service层封装:Dao接口&#xff1a;Dao层Mapper:映射实体类&#xff1a; 源数据如下 controller接口&#xff1a; RequestMapping("/UserTreeInfo")public RespBody getUserTreeInfo(Long userId) {List<MenuTreeVo>…...

c++学习笔记汇总

[TOC] (C学习笔记汇总) 基础认识、基础语法 类、类与类之间的关系、可调用对象、std::function类模板、c11新标准、资源管理方案RAII、指针、智能指针、引用计数、C的多态 ios、istream、iostream、fstream、sstream 模板编程&#xff1a; 模板编程&#xff1a;主要分为“泛…...

[动手学深度学习]生成对抗网络GAN学习笔记

论文原文&#xff1a;Generative Adversarial Nets (neurips.cc) 李沐GAN论文逐段精读&#xff1a;GAN论文逐段精读【论文精读】_哔哩哔哩_bilibili 论文代码&#xff1a;http://www.github.com/goodfeli/adversarial Ian, J. et al. (2014) Generative adversarial network…...

Kotlin中的算数运算符

在Kotlin中&#xff0c;我们可以使用各种算术运算符来进行数值计算和操作。下面对这些运算符进行详细描述&#xff0c;并提供示例代码。 正号&#xff08;正数&#xff09;和负号&#xff08;负数&#xff09;&#xff1a; 正号用于表示一个正数&#xff0c;不对数值进行任何…...

Linux高性能服务器编程 学习笔记 第十六章 服务器调制、调试和测试

Linux平台的一个优秀特性是内核微调&#xff0c;即我们可以通过修改文件的方式来调整内核参数。 服务器开发过程中&#xff0c;可能会碰到意想不到的错误&#xff0c;一种调试方法是用tcpdump抓包&#xff0c;但这种方法主要用于分析程序的输入和输出&#xff0c;对于服务器的…...

第三期:云函数入门指南答案

1.云函数需要用户自行考虑租用/购买多少资源以达到最少成本最高效运行自己的函数。 答案&#xff1a;错误(False) 2.Cloud Functions可以为您准备好计算资源&#xff0c;弹性地、可地运行任务&#xff0c;并提供日志查询、性能监控和报警等功能。 答案&#xff1a;正确(True…...

企业怎么通过数字化工具来实现数字化转型?

数字化转型是使用数字技术和工具从根本上改变公司运营方式并向客户提供价值的过程。它涉及思维方式、流程和技术的全面转变&#xff0c;以跟上快节奏的数字时代。以下是有关公司如何通过数字工具实现数字化转型的分步指南&#xff1a; 1.定义您的愿景和目标&#xff1a; 首先确…...

React函数式写法和类式写法的区别(以一个计数器功能为例子)

函数式写法更加简洁和函数式编程思维导向&#xff0c;适用于无状态、UI纯粹的组件&#xff0c;且可以使用Hooks处理副作用。而类式写法适用于有内部状态、生命周期方法和复杂交互逻辑的组件&#xff0c;提供了更多的灵活性和控制力。 文章目录 一、计数器功能演示 1.函数式写法…...

【根据国防科大学报官网word模板修改的Latex模板】

根据国防科大学报官网word模板修改的Latex模板 学报Word模板链接Latex模板结构编译环境为Texlivevscode或Textstudio 学报Word模板链接 学报官网相关下载链接 点击链接即可前往官网下载相关word模板 Latex模板结构 latex模板 ass.cfg文件 %深层模板文件ass.cls文件 %浅层模板…...

系列十一、Redis中分布式缓存实现

一、缓存 1.1、什么是缓存 内存就是计算机内存中的一段数据。 1.2、内存中的数据特点 读写快断电数据丢失 1.3、缓存解决了什么问题 提高了网站的吞吐量和运行效率减轻了数据库的访问压力 1.4、哪些数据适合加缓存 使用缓存时&#xff0c;一定是数据库中的数据极少发生改…...

Spark大数据分析与实战笔记(第一章 Scala语言基础-4)

文章目录 每日一句正能量1.4 Scala面向对象的特性1.4.1 类与对象的特性1.4.2 继承1.4.3 单例对象和伴生对象1.4.4 特质 每日一句正能量 若要快乐&#xff0c;就要随和&#xff1b;若要幸福&#xff0c;就要随缘。快乐是心的愉悦&#xff0c;幸福是心的满足。别和他人争吵&#…...

腾讯云服务器端口localhost可以访问,外部无法访问解决

搭建frp跳板&#xff0c;发现无法使用。ssh 连接不上。 主要检查2个东西&#xff1a; 1. ubuntu ufw系统防火墙。这个默认是关掉的 2. tencent这个防火墙规则设置后&#xff0c;还要设置到实例上。 以前不是这样的。就掉坑里了。 # systemctl rootVM-4-4-ubuntu:/lib/syst…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址&#xff1a;Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址&#xff08;如 10.244.1.2&#xff09;无特殊名称&#xff1a;在 Kubernetes 中&#xff0c;它通常被称为 “Pod IP” 或 “容器 IP”生命周期&#xff1a;与 Pod …...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...