在本文中,宝塔教程专栏将向您介绍如何在宝塔面板中部署egg+web项目,希望对您有所帮助!
宝塔部署egg+web项目
1.阿里云成立了安全组。
比如7002用来访问mongodb,7001用来访问api。
测试数据库连接最简单的方法是在浏览器中直接访问您的域名:端口,或者使用服务器ip:端口。如果使用域名,请注意域名需要解析并绑定到IP。您可以看到如下浏览器提示:
3.将本地mongoDB迁移到在线/数据库初始化脚本
初始化数据库:app.js
app . before start(async()= & gt;{ const CTX = app . createanonymouscontext();const model = ctx.modelconst existGroup = await模型。user group . find one({ name:& # 39;超级管理员& # 39;})如果(!exist group){ const group = await model。user group . create({ & quot;名称& quot:& quot总管理员",& quot;idName & quot:& quot管理员& quot,& quot角色& quot: 100 });} console . log(& quot;= = app beforeStart = = & quot);});4.鸡蛋运行配置
1.添加网站,上传项目(如果代码托管在远程仓库,建议直接打开网站目录中的终端面板进行git克隆)
注意:上传项目时,删除node_modules文件再上传,会快很多。然后找到左边的“文件= >;“终端”(收藏夹旁边),打开密码输入连接(或者使用服务器的终端);输入命令行:cd /www/wwwroot/ project目录,然后重新安装NPM。这样可以在一定程度上避免项目无法启动的尴尬。
二。流程管理:(待验证!)
可以创建index.js来启动egg服务。
1.方法,egg内置了进程管理器,可以直接运行项目目录下的命令:node index.js index.js代码:
const egg = require(& # 39;鸡蛋& # 39;);const workers = Number(process . argv[2]| | require(& # 39;os & # 39).CPU()。长度);egg.startCluster({ workers,baseDir: __dirname,});2.安装PM2来管理节点进程,选择文件并点击“添加”
注意:配置后发现前端可以访问但api不能。请注意看是不是端口占用问题。
检查所有端口的占用率,输入命令:netstat -ano ‘,使用命令pkill node ‘批量杀死进程。
第三,给egg项目的运行端口添加一个反向代理。
5.前端项目打包后放在egg的静态目录下,在config/config.default.js中配置(或者启动另一个项目)。
config . static = { prefix:& # 39;/',dir: [ path.join(__dirname,& # 39;../app/public & # 39;),//path.join(__dirname,& # 39;../dist & # 39;)//放置前端打包文件]}然后添加一个对router.js的重定向,将非api请求重定向到index.html,以显示前端页面。
app . router . redirect(& # 39;/', '/index . html & # 39;, 302);6.代码同步(使用git)
(假设本地有git,并且提交到远程)1。在宝塔面板中,打开项目路径下的终端:2。方法一。如果文件没有提交,直接git克隆[url]。方法二。如果文件已经提交,初始化:git init设置远程仓库地址:git remote origin set-url [url]或git remote add origin [url]用户名:git config-global User . name[用户名]git config-global User . email[email]如果只想在当前项目下设置,remove-global。如果有本地文件,首先执行:git add。git commit-m ” init & quot;Git push-u origin master pull:git config-global credential . helper store//让git记住用户名和密码。下次不用填写git pull //和输入用户名密码拉远程代码,就可以去宝塔面板部署egg+web项目(有详细步骤)。请多关注草根吧VPS其他相关文章!