生产环境原生部署流程
# 前言
生产环境部署,建议暂时用原生方式进行部署,其中MySQL与openLDAP外置单独部署,这里不再赘述,默认已经准备好了。
这里罗列当下默认配置,其他系统请自行根据情况进行相应调整。
- 系统:CentOs7系统
- MySQL:5.7
- openLDAP:1.14.0
- OpenResty:1.21.4.1-0
- 域名:demo-go-ldap-admin.eryajf.net
# 制品获取
以下文档为旧版,其中制品的获取是通过下载源码之后,编译得来,现在已经对前后端增加了自动构建制品的能力,因此下边编译项目的步骤你可以忽略,参考这里的步骤,直接通过下载release中的制品即可获得。
# 后端
你可以在这里 (opens new window)找到最新版本:
$ wget https://github.com/eryajf/go-ldap-admin/releases/download/v0.5.9/go-ldap-admin-v0.5.9-linux-amd64.tar.gz
$ tar xf go-ldap-admin-v0.5.9-linux-amd64.tar.gz
1
2
2
其中后端制品解压之后,包含内容如下:
$ tree -N
.
├── LICENSE
├── README.md
├── config.yml
├── go-ldap-admin
├── go-ldap-admin-priv.pem
├── go-ldap-admin-pub.pem
├── go-ldap-admin-v0.5.9-linux-amd64.tar.gz
└── rbac_model.conf
0 directories, 8 files
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 前端
你可以在这里 (opens new window)找到最新版本:
$ wget https://github.com/eryajf/go-ldap-admin-ui/releases/download/v0.5.12/go-ldap-admin-ui-v0.5.12.tar.gz
$ tar xf go-ldap-admin-ui-v0.5.12.tar.gz
1
2
2
前端制品解压之后,包含内容如下:
$ tree -N go-ldap-admin-ui
go-ldap-admin-ui
├── LICENSE
├── README.md
├── default.conf
└── dist
├── favicon.ico
├── goldapadmin.ico
├── index.html
└── static
├── css
│ ├── app.002b83d7.css
│ ├── 等等========等等
│ └── chunk-libs.3dfb7769.css
├── fonts
│ ├── element-icons.535877f5.woff
│ └── element-icons.732389de.ttf
├── img
│ ├── 401.089007e7.gif
│ ├── 404.a57b6f31.png
│ ├── 404_cloud.0f4bc32b.png
│ ├── goldapadmin.ecbc528a.png
│ └── login.e49a1d4c.jpeg
└── js
├── app.2b71e8e0.js
├── 等等========等等
└── chunk-libs.43b732db.js
6 directories, 39 files
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 部署后端
# 编译项目
$ make build-linux
1
# 更改配置
根据实际情况调整配置文件内容。
$ vim config.yml
1
# systemd管理
基于systemd进行管理:
$cat /usr/lib/systemd/system/go-ldap-admin.service
[Unit]
Description=Go Ldap Admin Service
[Service]
WorkingDirectory=/data/www/go-ldap-admin.eryajf.net/
ExecStart=/data/www/go-ldap-admin.eryajf.net/go-ldap-admin
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 启动项目
$ systemctl daemon-reload
$ systemctl start go-ldap-admin
$ systemctl status go-ldap-admin
1
2
3
2
3
# 验证服务
启动之后项目将会监听本地8888端口,通过如下请求可验证后端是否可用:
$ curl -s localhost:8888/api/base/ping | jq
{
"code": 200,
"data": "pong",
"msg": "ok"
}
1
2
3
4
5
6
2
3
4
5
6
# 部署前端
前端通过OpenResty代理的方式进行部署,同样,关于OpenResty的部署这里就不再赘述,感兴趣的同学可以参考:https://wiki.eryajf.net/pages/296104/ (opens new window)。
# 修改配置
编译项目之前,需要将.env.production
中的VUE_APP_BASE_API
配置项,更改为正式部署环境的域名。
$ vim .env.production
VUE_APP_BASE_API = 'http://demo-go-ldap-admin.eryajf.net/'
1
2
2
# 编译项目
# 一些直接从GitHub拉取的依赖需要进行如下配置
$ git config --global url."https://".insteadOf git://
$ npm install --registry=http://registry.npmmirror.com
$ yarn build:prod
1
2
3
4
5
6
2
3
4
5
6
编译完成之后,会在本地生成dist目录,需将其同步到服务器。
# OpenResty配置
在OpenResty中添加如下配置,代理本项目:
$ cat /etc/nginx/vhost/demo-go-ldap-admin.eryajf.net.conf
server {
listen 80;
server_name demo-go-ldap-admin.eryajf.net;
root /data/www/go-ldap-admin.eryajf.net/dist;
location / {
try_files $uri $uri/ /index.html;
add_header Cache-Control 'no-store';
}
location /api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8888;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
配置重载之后,即可在浏览器通过http://demo-go-ldap-admin.eryajf.net (opens new window)进行访问。
# 数据备份
待补充,理论上仅备份MySQL的go_ldap_admin库即可,平台将提供数据一键灌入的能力。
帮助我们改善此页面 (opens new window)
上次更新: 2023/10/17, 09:30:52