Linux 部署(宝塔)
1069 words
5 min
- 前提:安装好宝塔环境
- 宝塔官方地址
WARNING
部署好之后记得查看防火墙,跨域配置
安装环境
Net安装

MySql安装
- 点击左侧菜单“软件管理”,安装系统软件:MySQL(选择对应数据库,这里用mysql演示)、Redis(可选)、RabbitMQ(可选)

Redis安装

RabbitMQ安装

后端部署
生成数据库
- 修改Lion.AbpPro.DbMigrator的appsetting.json为线上数据库地址
- 运行Lion.AbpPro.DbMigrator项目,会生成数据库结构和种子数据
修改配置
- 生产环境读取appsetting.Production.json配置,请确保已配置
发布项目
- 在Lion.AbpPro.HttpApi.Host.csproj路径下打开cmd或者powershell,执行一下命令
bash
dotnet publish Lion.AbpPro.HttpApi.Host.csproj -c Release -o publish/adminapi /p:UseAppHost=false
- 在/publish/adminapi下压缩当前项目amdinapi.zip
上传项目
- 点击左侧菜单“文件”,新增目录/www/wwwroot/abppro

- 上传amdinapi.zip,在执行解压


创建项目
- 点击左侧菜单“网站”,选择Net项目,点击新建项目
2. 创建项目

bash
dotnet Lion.AbpPro.HttpApi.Host.dll --urls=http://*44312开放端口
宝塔端

云服务器端(腾讯云示例)

是否启动成功
无错误日志,正常启动,服务器放行44312端口,通过ip+port访问项目

浏览器输入ip+port会跳转到后端登录页面,既部署成功
默认用户名密码:admin/1q2w3E*
前端部署
Nginx安装

修改配置
- env.production 接口地址为以上你发布的地址,如果配置了域名改成域名即可
js
# 后端接口地址
VITE_APP_API_ADDRESS=http://ip:port
# websocket地址
VITE_WEBSOCKET_URL=http://ip:port/signalr/notification还原项目
- 在项目根目录下执行 pnpm install
构建项目
- 如果你的项目中使用了 antd,需要执行下面的命令
- 执行了命令之后会在apps/web-antd或者apps/web-ele或者apps/web-naive目录下有个dist文件夹
- 进入到dist文件夹,全选所有文件,压缩成dist.zip
bash
pnpm run build:antd- 如果你的项目中使用了 element-ui,需要执行下面的命令
bash
pnpm run build:ele- 如果你的项目中使用了 naive,需要执行下面的命令
bash
pnpm run build:naive上传项目
- 上传web.zip到/www/wwwroot/public下
- dist.zip重命名为adminweb.zip
- 解压项目

创建Html项目
点击左侧菜单“网站”,选择Html项目,点击新建项目


修改Nginx配置
- 添加以下配置
bash
underscores_in_headers on; # 启用下划线支持 多租户的租户id通过请求头传毒
location / {
try_files $uri $uri/ /index.html; # 解决刷新404
}
开放端口
- 当前前端用的44313端口,请在宝塔上和云服务器端开放
修改跨越配置
- 修改appsetting.Production.json配置
json
"Cors": {
"Enabled": true,
"CorsOrigins": "http://localhost:4200,http://ip:44313"
},是否启动成功
- 浏览器通过ip+port访问项目
- 默认用户名密码:admin/1q2w3E*
Nginx完整配置
bash
server
{
listen 44313;
listen [::]:44313;
server_name 139.155.114.244_44313;
index index.html index.htm default.htm default.html;
root /www/wwwroot/public/adminweb;
#CERT-APPLY-CHECK--START
# 用于SSL证书申请时的文件验证相关配置 -- 请勿删除并保持这段设置在优先级高的位置
include /www/server/panel/vhost/nginx/well-known/139.155.114.244_44313.conf;
#CERT-APPLY-CHECK--END
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/html_139.155.114.244_44313.conf;
#REWRITE-END
underscores_in_headers on; # 启用下划线支持
location / {
try_files $uri $uri/ /index.html;
}
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
#禁止在证书验证目录放入敏感文件
if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
return 403;
}
location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
access_log /www/wwwlogs/139.155.114.244_44313.log;
error_log /www/wwwlogs/139.155.114.244_44313.error.log;
}