paozhu C++ Web 框架 SAAS开发模式
2026/7/3 5:05:09 网站建设 项目流程

面,也可以多虚拟主机模式,就是域名隔离。 这种模式可以其他方式呈现,比如类似微服务模式,controller/src创建目录如果类似域名,就是中间有一个点,那么这个目录独立注解函数。

比如我们在controller/src创建aaa.combbb.com两个域名目录,他们都有news路径注解函数,实现功能有所不同

  • http://www.aaa.com/news 对应的是aaa.com域名的注解函数
  • http://www.bbb.com/news 对应的是bbb.com域名的注解函数

这种模式可以管理复杂大型项目,而且还是单体模式,更多使用方式可能等熟悉后自己自由发挥。

SAAS开发模式配置

先配置conf/server.conf假设cn.aaa.com域名 配置SAAS模式

[cn.aaa.com] wwwpath=/www/user/www/aaa http2_enable=1 upload_max_size=16777216 siteid=9 groupid=0 alias_domain=aaa.com themes=cn

wwwpath 就是cn.aaa.com域名www根目录,这个可以手动创建或由超级后台创建,详见cppcms数据库superadmin表,里面basesitepath字段表示本超级管理员名下多租户基本目录。

http2_enable=1 表示开启http/2

upload_max_size=16777216 表示上传文件最大为16M

siteid=9 就是有超级管理员创建产生的ID,详见cppcms数据库siteinfo表,里面userid字段

groupid=0 是备用的,预设分组用

alias_domain=aaa.com 默认为空不用设置,表示使用controller/src目录下aaa.com目录下注解函数,如果没有会使用框架默认带的注解函数,其它域名也可以使用这个目录下注解函数,只要同样alias_domain=aaa.com设置

themes=cn 表示使用view目录下cn目录

themes_url= 表示访问themes图片等资源的url

SAAS模式使用

使用方法在httppeer.h定义

std::string get_sitepath(); unsigned long long get_siteid(); unsigned long long get_groupid(); std::string get_theme(); std::string get_themeurl(); void theme_view(const std::string &a);

使用方法例子,在注解函数中使用

controller ├── src │ └─ aaa.com │ └── article.cpp

article.cpp内容示例

namespace http { namespace aaa { //@urlpath(null,articles) std::string front_article(std::shared_ptr<httppeer> peer) { unsigned int userid=peer->get_siteid(); peer->theme_view("front/articlelist"); } }// namespace aaa }//namespace http

注意: namespace aaa 命名空间,aaa命名空间名称是aaa.com点号前面部分

peer->theme_view("front/articlelist");前面我们设置了themes=cntheme_view 使用view/cn/front/articlelist.html视图文件

主要特性1:controller/src创建aaa.com目录,如果不使用alias_domain=aaa.com设置 是无法使用的,这样方便大

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询