Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-unicloud-zh
提交
76da57b3
U
unidocs-unicloud-zh
项目概览
DCloud
/
unidocs-unicloud-zh
通知
84
Star
2
Fork
20
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
9
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-unicloud-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
9
合并请求
9
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
76da57b3
编写于
6月 03, 2024
作者:
crlfe
😲
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update: unicloud-private-env.md
上级
b0476120
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
215 addition
and
84 deletion
+215
-84
docs/unicloud-private-env.md
docs/unicloud-private-env.md
+215
-84
未找到文件。
docs/unicloud-private-env.md
浏览文件 @
76da57b3
...
...
@@ -13,6 +13,7 @@
从开发工具、API、生态各维度,软件版和serverless版没有差别。开发者基于serverless版编写的uniCloud项目源码,可以平滑部署到软件版,前端uni-app代码、后端云函数、云对象等代码,均无需修改。
相比serverless版,
`软件版`
最主要的差别如下:
-
开发者需要单独购买服务器,自己安装操作系统(目前仅支持
`linux`
操作系统);
-
开发者自己购买云存储、开通CDN加速产品;
-
开发者自己安装数据库,或者购买mongodb实例;
...
...
@@ -29,6 +30,7 @@
uniCloud软件版,作为一个开发框架,仅负责云函数、云对象的执行,支持在云函数中连接开发者自己的对象存储和数据库。而这些对象存储和数据库,需要开发者自己去购买开通,uniCloud软件版本身没有内置。
存储方面,uniCloud软件版目前支持如下3种存储方案:
-
本地存储:文件存储和uniCloud软件版在同一台服务器上;
-
阿里云OSS
-
腾讯云COS
...
...
@@ -38,11 +40,11 @@ uniCloud软件版,作为一个开发框架,仅负责云函数、云对象的
## 安装指南
::: warning 注意
1.
为了与serverless版保持一致,软件版目前仅支持
`mongo 4.0`
版本
2.
uniCloud软件版内置的定制
`node.js`
版本为
`16.20.2`
:::
### 系统要求
**系统最低配置**
...
...
@@ -63,7 +65,7 @@ Ubuntu >= 20.04 或更高版本
CentOS >= 8.5 或更高版本 (官方已停止维护,不推荐作为生成环境使用)
银河麒麟高级服务器操作系统V10
银河麒麟高级服务器操作系统V10
**Linux 安装先决条件**
...
...
@@ -74,11 +76,53 @@ CentOS >= 8.5 或更高版本 (官方已停止维护,不推荐作为生成环
-
CentOS、RHEL:
`sudo yum install gcc`
-
Ubuntu:
`sudo apt-get install gcc`
**环境检测**
可以逐步运行一下命令来确认服务器配置
```
uname -r // 查看内核发行版本号
cat /etc/os-release | grep -E "^NAME=|^VERSION=" // 查看系统版本号
ldd --version // 查看 glibc 版本号
gcc --version // 查看 GCC 版本号
cat /proc/cpuinfo| grep "processor" // 查看CPU信息
free -h // 查看内存信息
df -h // 查看磁盘信息
```
### 获取安装软件
uniCloud软件版是付费软件,你需要先发邮件到
`bd@dcloud.io`
,通过商务采购后才能获得。
uniCloud软件版是付费软件,根据服务器数量及应用数量进行收费。
登录uniCloud控制台,按图所示进入uniCloud软件版页面
![](
https://web-ext-storage.dcloud.net.cn/unicloud/docs202406031627806.png
)
初次使用需在uniCloud控制台进行申请开通,开通后可以创建集群后获取uniCloud安装包。
获得安装软件后,你需要将安装包上传到自己的服务器,然后登录服务器,进行文件解压;
![](
https://web-ext-storage.dcloud.net.cn/unicloud/docs202406031634663.png
)
同意开通后进入uniCloud软件版集群列表
![](
https://web-ext-storage.dcloud.net.cn/unicloud/docs202406031639818.png
)
目前创建集群数量暂无限制,您可以根据部署的业务来创建不同的集群。
> 什么是集群?
>
> 集群的作用是基于不同的业务划分一组服务器来进行部署,并且同一集群下的应用是共享的。
>
> 如果业务需要分布式运行可以在同一集群下添加多台服务器实现,而不需要创建新的集群。
集群创建后,需要稍等片刻,后台会在10分钟内构建最新版本的uniCloud软件版安装包。
![](
https://web-ext-storage.dcloud.net.cn/unicloud/docs202406031626507.png
)
安装软件构建成功后,你需要将安装包上传到自己的服务器,可以通过网页下载后手动上传,也可以复制
`wget`
命令在服务器执行并下载安装包
![](
https://web-ext-storage.dcloud.net.cn/unicloud/docs202406031644365.png
)
将安装包下载到服务后运行以下命令进行解压操作,并移动到合适的文件夹内 (推荐文件夹
`/uniCloud`
)
```
# 创建uniCloud目录,需要root用户权限
...
...
@@ -87,20 +131,70 @@ mkdir /uniCloud
tar -zxvf [version].tar.gz -C /uniCloud
```
**离线集群版本**
如果您有内网部署需求(服务器不允许连接外网),可以发邮件到
`bd@dcloud.io`
,通过商务采购方式申请开通离线集群进行部署安装使用。
### 注册 uniCloud软件版
### 获取激活license
uniCloud软件版安装完成后,需要像DCloud注册您的uniCloud软件版,注册成功后才可以正常运行。
uniCloud软件版的license是和服务器硬件绑定的,激活软件之前需要先执行扫描操作:
-
下载
[
uniCloud-scan
](
https://web-ext-storage.dcloud.net.cn/unicloud/private/tools/uniCloud-scan
)
-
上传 uniCloud-scan到服务器
-
在服务器上执行
`./uniCloud-scan`
-
将扫描结果发给DCoud商务经理,由DCloud侧生成
`LICENSE`
文件
-
将
`LICENSE`
文件上传至
`/uniCloud/`
目录下
每个账号每年(自然年)可以有5次注册试用版机会,单次试用时长为14天。
### 软件操作命令
在试用版中可以体验完整的uniCloud软件版服务,并且不限制应用数量。
试用到期后如uniCloud软件版还在运行,接收到请求后将统一返回试用过期信息,请勿将试用版用于生产环境。
如需生产环境部署,请购买uniCloud软件版服务器授权。
在uniCloud软件版安装目录下运行以下命令进行激活
-
`./unicloud register`
注册uniCloud软件版
-
`./unicloud regsiter --trial`
注册试用uniCloud软件版
**离线集群uniCloud软件版注册方式**
由于离线uniCloud软件版没有网络连接,需要在uniCloud软件版安装目录下运行
`./uniCloud scan`
命令,会检测服务器环境信息及注册状态,如未注册状态,会在最后生成一个硬件ID
![](
https://web-ext-storage.dcloud.net.cn/unicloud/docs202406031715273.png
)
你需要登录uniCloud控制台-集群详情页面,在服务器授权处点击添加授权,输入服务器名称(用于备注服务器)和硬件ID保存,添加完成后点击"下载授权",将会生成
`[servername].LICENSE`
文件并下载。
![](
https://web-ext-storage.dcloud.net.cn/unicloud/docs202406031924263.png
)
将下载的授权文件上传uniCloud软件版安装根目录下,并重命名为
`LICENSE`
,即可完成注册。
### 添加应用授权
应用授权即授权哪些uni-app客户端可以访问uniCloud软件版,应用授权需要单独购买,
未授权的应用访问uniCloud软件版将会返回
`403`
错误码。
添加应用授权有两种方式,一种是在购买授权时,同时绑定应用,另外一种是只购买授权次数,在之后再绑定应用,根据实际情况选择。
添加完应用之后需要重新启动uniCloud软件版服务后生效。
**离线集群uniCloud软件版更新应用授权**
在添加应用之后,点击对应的AppId的下载授权按钮,将会生成
`[AppId].LICENSE`
文件并下载。
![](
https://web-ext-storage.dcloud.net.cn/unicloud/docs202406031923255.png
)
如果是首次添加应用,请检查uniCloud软件版安装根目录下是否存在
`app-license`
文件夹,如不存在,请先创建。
将下载的授权文件上传uniCloud软件版安装根目录
`app-license`
文件夹内即可。
添加完应用之后需要重新启动uniCloud软件版服务后生效。
### uniCloud软件版操作命令
> 所有命令请在软件版环境根目录运行
注册uniCloud软件版
```
./unicloud register // 注册
./unicloud register --trial // 注册试用
```
启动
`./unicloud start -s [服务空间ID]`
...
...
@@ -113,16 +207,29 @@ uniCloud软件版的license是和服务器硬件绑定的,激活软件之前
`./unicloud install -s [服务空间ID]`
初始化数据库
`./unicloud init-database -s [服务空间ID]`
扫描服务器、服务空间、注册状态等信息
`./unicloud scan`
## 开发指南
### 创建服务空间
为了和serverless版保持一致的开发体验,你需要创建服务空间:
-
登录
[
uniCloud控制台
](
https://unicloud.dcloud.net.cn/
)
创建DCloud服务空间,复制新建空间的SpaceId
-
登录部署uniCloud软件版的服务器,创建空间目录:
登录
[
uniCloud控制台
](
https://unicloud.dcloud.net.cn/
)
新建服务空间,版本选择 uniCloud软件版,绑定集群后即可开通。
![](
https://web-ext-storage.dcloud.net.cn/unicloud/docs202406031939942.png
)
服务空间创建成功后,复制服务空间ID,在uniCloud软件版根目录按照以下命令创建服务空间目录
```
cd /uniCloud/spaces/
mkdir spaces // 如果spaces目录不存在先创建
cd spaces
mkdir [SpaceId]
```
...
...
@@ -145,9 +252,9 @@ mkdir [SpaceId]
"minPoolSize"
:
10
//最小连接数
},
"storage"
:
{
//存储服务配置,如项目未使用存储服务可不配置此项
"provider"
:
"local"
,
//服务商
支持local:本地存储
aliyun:
阿里云存储服务
tencent:腾讯云存储服务
"provider"
:
"local"
,
//服务商
支持local:本地存储
aliyun:
阿里云存储服务
tencent:腾讯云存储服务
qiniu:七牛云
"dir"
:
"file/upload"
,
//文件上传目录
"bucket"
:
""
,
//存储桶名称,本地存储无需配置此项
"bucket"
:
""
,
//存储桶名称,本地存储无需配置此项
"cdnProtocol"
:
"http://"
,
//cdn协议
支持
http
https
"cdnDomain"
:
"127.0.0.1:7001"
,
//cdn域名
"cdnRootPath"
:
"/storage/file/"
,
//cdn根目录
...
...
@@ -162,8 +269,8 @@ mkdir [SpaceId]
"password"
:
""
//密码
},
"spaceSecret"
:
{
//服务空间通讯配置
"secretKeyId"
:
"xxxx"
,
//SpaceKeyID,可在uniCloud控制台查看
"secretKey"
:
"xxx"
//SpaceSecret
,可在uniCloud控制台查看
"secretKeyId"
:
"xxxx"
,
//SpaceKeyID,可在uniCloud控制台查看
"secretKey"
:
"xxx"
//SpaceSecret
,可在uniCloud控制台查看
}
}
```
...
...
@@ -182,42 +289,29 @@ mkdir [SpaceId]
}
```
### 使用HBuilerX开发调试
> 软件版暂不支持`oss`、`cos`等存储服务的本地调试。
#### 安装uniCloud软件版插件
#### 安装override插件包
在插件市场中下载
[
uniCloud软件版插件
](
https://ext.dcloud.net.cn/plugin?id=18520
)
,并在HBuilderX中安装。
软件版环境的
`mongo`
、
`redis`
等数据库是由开发者自行购买或安装的,因此要想在
`HBuilderX`
中连接这些服务,需安装相关的插件包和npm依赖,并为项目添加数据库等服务的配置文件。
uniCloud软件版插件支持以下功能:
1.
下载并解压
`override插件包`
,插件包可联系
`DCloud`
工作人员获取。
-
创建本地调试配置文件
-
创建本地存储调试配置文件
-
打包uniCloud资源
2.
将
`override插件包`
目录内的文件,移至
`HBuilderX安装目录/plugins/unicloud/override`
目录下。
#### 关联服务空间
3.
安装
`mongo`
、
`redis`
数据库依赖:在
`HBuilderX安装目录/plugins/unicloud`
目录下,分别执行
`npm install mongodb@3.6.3`
和
`npm install redis@3.1.2`
。
> HBuilderX > 4.19 (暂定)
uniCloud软件版服务空间使用
`dcloud`
标识
#### 关联服务空间
如果项目内不存在
`dcloud`
服务空间,请在项目根目录右键-创建uniCloud环境,选择
`DCloud`
创建即可。
`HBuilderX`
中运行
`uniCloud项目`
,必须关联服务空间,但HBuilderX暂不支持关联DCloud服务空间,此时你需要按照如下操作进行:
-
创建一个免费的serverless版服务空间,仅做为关联使用,无需担心费用;
-
修改配置文件:
`vue2项目`
的配置文件为:
`vue.config.js`
,
`vue3项目`
的配置文件为:
`vite.config.js`
,内容如下:
```
js
//客户端DCloud服务空间连接配置示例
process
.
env
.
UNI_CLOUD_PROVIDER
=
JSON
.
stringify
([{
provider
:
'
dcloud
'
,
//声明为DCloud服务空间
spaceName
:
'
private-space
'
,
//服务空间名称
spaceId
:
'
pvt-xxx
'
,
//服务空间编号
clientSecret
:
'
ba461799-fde8-429f-8cc4-4b6d306e2339
'
,
//客户端通讯密钥
endpoint
:
'
http://127.0.0.1:7001
'
//DCloud服务空间的访问地址
}])
```
`dcloud`
服务空间文件夹全名为
`uniCloud-dcloud`
关于spaceId、clientSecret等DCloud服务空间相关信息,可在
[
uniCloud控制台
](
https://unicloud.dcloud.net.cn/
)
查看。
HBuilderX会尽快发版,支持关联DCloud服务空间。
在
`uniCloud-dcloud`
目录右键即可关联
`dcloud`
服务空间。
#### 配置数据库链接
...
...
@@ -226,21 +320,62 @@ HBuilderX会尽快发版,支持关联DCloud服务空间。
```
json
//下方为配置示例,如拷贝此内容切记去除注释
{
"mongodb"
:
{
//mongo库连接配置
"url"
:
"mongodb://username:password@127.0.0.1:7001"
,
//mongo库连接地址
"database"
:
"unicloud"
//数据库名称
},
"redis"
:
{
//redis库连接配置,项目中不使用redis服务可不配置此项
"host"
:
"127.0.0.1"
,
//host
"port"
:
6379
,
//端口号
"password"
:
"password"
//密码
}
"mongodb"
:
{
//mongo库连接配置
"url"
:
"mongodb://username:password@127.0.0.1:7001"
,
//mongo库连接地址
"database"
:
"unicloud"
//数据库名称
},
"redis"
:
{
//redis库连接配置,项目中不使用redis服务可不配置此项
"host"
:
"127.0.0.1"
,
//host
"port"
:
6379
,
//端口号
"password"
:
"password"
//密码
}
}
```
#### 配置文件存储
本地调试支持本地存储、OSS、COS、七牛云存储,
参考以下示例配置存储调试。
```
json
//下方为配置示例,如拷贝此内容切记去除注释
{
"storage"
:
{
//存储服务配置,如项目未使用存储服务可不配置此项
"provider"
:
"local"
,
//服务商
支持local:本地存储
aliyun:
阿里云存储服务
tencent:腾讯云存储服务
qiniu:七牛云
"dir"
:
"file/upload"
,
//文件上传目录
"bucket"
:
""
,
//存储桶名称,本地存储无需配置此项
"cdnProtocol"
:
"http://"
,
//cdn协议
支持
http
https
"cdnDomain"
:
"127.0.0.1:7001"
,
//cdn域名
"cdnRootPath"
:
"/storage/file/"
,
//cdn根目录
"storageSecret"
:
"xxxxxxxxxx"
,
//本地存储服务访问密钥
},
}
```
#### 重启HBuilderX
#### 运行项目
以上步骤完成后,运行项目即可。
切换云端云函数时,需部署到服务器后才可调用云端云函数。
### 部署
由于有uni_modules插件内包含uniCloud云函数等,需要进行uniCloud打包操作,将uni_modules插件内的云函数及数据库schema抽离出来。
在
`uniCloud-dcloud`
目录右键“uniCloud软件版”-“打包uniCloud资源”,将会在
`uniCloud-dcloud`
服务空间目录下生成
`dist`
目录。
可以使用git/svn等版本管理工具进行管理,将代码上传至git/svn,在服务器拉取代码,在服务器上将
`uniCloud-dcloud/dist`
同步到对应服务空间目录下即可。
也可以单独对
`dist`
目录打包zip并上传到服务器对应的服务空间目录下解压即可。
以上步骤完成后,需重启
`HBuilderX`
后方可生效。
上传代码之后需要重新启动服务空间,在uniCloud软件版根目录执行以下命令进行重启操作
```
./unicloud stop -s [服务空间ID]
./unicloud start -s [服务空间ID]
```
建议部署时采用分布式部署方案,即使用2台以上服务器部署可以保证服务的稳定性,在服务重启时也不会中断服务。
## 运维指南
...
...
@@ -252,40 +387,39 @@ HBuilderX会尽快发版,支持关联DCloud服务空间。
```
conf
server
{
listen
80
;
server_name
test
.
pvtcloud
.
com
;
root
D
:/
www
/
test
.
pvtcloud
.
com
;
location
/ {
try_files
$
uri
$
uri
/ /
index
.
html
;
}
location
~ (/
client
|/
http
/) {
proxy_http_version
1
.
1
;
proxy_set_header
Connection
"keep-alive"
;
proxy_set_header
X
-
Real
-
IP
$
clientRealIp
;
proxy_set_header
X
-
Real
-
PORT
$
remote_port
;
proxy_set_header
X
-
Forwarded
-
For
$
proxy_add_x_forwarded_for
;
proxy_set_header
Host
$
http_host
;
proxy_set_header
Scheme
$
scheme
;
proxy_set_header
Server
-
Protocol
$
server_protocol
;
proxy_set_header
Server
-
Name
$
server_name
;
proxy_set_header
Server
-
Addr
$
server_addr
;
proxy_set_header
Server
-
Port
$
server_port
;
proxy_pass
http
://
127
.
0
.
0
.
1
:
7001
;
}
listen
80
;
server_name
test
.
pvtcloud
.
com
;
root
D
:/
www
/
test
.
pvtcloud
.
com
;
location
/ {
try_files
$
uri
$
uri
/ /
index
.
html
;
}
location
~ (/
client
|/
http
/) {
proxy_http_version
1
.
1
;
proxy_set_header
Connection
"keep-alive"
;
proxy_set_header
X
-
Real
-
IP
$
clientRealIp
;
proxy_set_header
X
-
Real
-
PORT
$
remote_port
;
proxy_set_header
X
-
Forwarded
-
For
$
proxy_add_x_forwarded_for
;
proxy_set_header
Host
$
http_host
;
proxy_set_header
Scheme
$
scheme
;
proxy_set_header
Server
-
Protocol
$
server_protocol
;
proxy_set_header
Server
-
Name
$
server_name
;
proxy_set_header
Server
-
Addr
$
server_addr
;
proxy_set_header
Server
-
Port
$
server_port
;
proxy_pass
http
://
127
.
0
.
0
.
1
:
7001
;
}
}
//注意,上述配置中用到的$
clientRealIp
变量并非是内置变量,需在
nginx
.
conf
文件的
http
模块定义后才可使用,以下为配置示例:
http
{
## Get Client Real IP
map
$
http_x_forwarded_for
$
clientRealIp
{
""
$
remote_addr
;
~^(?
P
<
firstAddr
>[
0
-
9
\.]+),?.*$ $
firstAddr
;
}
## Get Client Real IP
map
$
http_x_forwarded_for
$
clientRealIp
{
""
$
remote_addr
;
~^(?
P
<
firstAddr
>[
0
-
9
\.]+),?.*$ $
firstAddr
;
}
}
```
### 防火墙白名单配置
若你的服务器开启了防火墙功能,且需要访问如:
`uniCloud软件版(联网版)`
、
`短信`
、
`一键登录`
、
`uni-ai`
、
`实人认证`
、
`uni-push`
等在线业务,则需要将这些业务的API域名,添加到防火墙白名单中。
...
...
@@ -304,7 +438,6 @@ sudo firewall-cmd --reload
```
#### 各业务API域名
-
uniCloud软件版(联网版)及付费业务API域名
...
...
@@ -315,7 +448,6 @@ sudo firewall-cmd --reload
-
uni-push业务API域名
-
- restapi.getui.com
### 日志
uniCloud 私有云内置了完善的日志服务支持,日志分为启动日志与运行日志。
...
...
@@ -360,4 +492,3 @@ uniCloud 私有云内置了完善的日志服务支持,日志分为启动日
启动日志按照每次启动进行自动切割。
运行日志是按天切割,在每日
`00:00`
按照
`.log.YYYY-MM-DD`
文件名进行切割。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录