当前位置: 首页 > 后端技术 > Node.js

服务器部署前端&node项目(含阿里云服务器、nginx和mongoDB配置)

时间:2023-04-03 23:11:54 Node.js

建议不熟悉linux命令的朋友同时打开我的另一篇博客linux常用操作服务器购买&配置打开aliyun选择购买云服务器ECS,这里可以选择一键购买快速配置,操作系统选择CentOS7.264位,其他默认或者根据实际需要,如果选择自定义购买请自行搜索;购买成功并设置账号密码后,可以使用ftp工具(我用的是FileZilla)或者git连接到我们的服务器。这个时候我们也可以打开阿里云控制台/云服务器ECS查看购买的服务器;打开阿里云控制台/云服务器ECS/网络与安全/安全组,在安全组列表中点击配置规则,点击快速创建规则暴露端口。比如暴露80端口,选择HTTP(80),授权对象填0.0.0.0/0,其他默认即可。要公开其他端口,您可以选择自定义端口。比如暴露7001端口,可以在自定义端口中选择TCP,输入7001/7001。打开节点性能平台,点击新建应用,按照提示操作。开启成功后,可以在项目配置中监控数据(具体配置见下文)。连接到服务器gitconnection#sshremote_username@remote_ip然后输入密码。如果ssh不存在,执行以下命令。#yuminstallopenssh-client下载客户端sshftp工具连接(这里以FileZilla为例),下载好filezilla后,点击新建站点,输入主机ip,选择sftp协议,登录类型选择正常,输入账号密码部署节点环境部署节点环境#sshremote_username@remote_ip连接服务器#wgethttps://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz下载节点压缩包file#tarxvfnode-v6.9.5-linux-x64.tar.xz解压#ln-s/root/node-v6.9.5-linux-x64/bin/node/usr/local/bin/node创建软连接#ln-s/root/node-v6.9.5-linux-x64/bin/npm/usr/local/bin/npm创建软连接#node-v查看node版本#npm-v查看npm版本Others#yuminstallvim下载vimnginxinstall&configurenginxinstall#yuminstallepel-release下载epel-release#yuninstallnginx下载nginx#cd/etc/nginx#vimnginx.conf使用Vim打开nginx.conf,修改nginx.conf,修改userasroot,修改server如下,这里的admin指的是管理后台项目,app指的是移动端项目,wx指的是代理另一个节点微信公众号项目(运行在7002端口,但是微信公众号配置了http到只允许80端口,所以设置代理,我们的elm接口运行在7001上,没有代理)server{listen80default_server;听[::]:80默认服务器;服务器_姓名_;根/根/万维网/;#加载默认服务器块的配置文件。包括/etc/nginx/default.d/*.conf;location/admin/{#就是空的,前端包文件放在/root/www/admin中可以访问,注意默认是index.html}location/app/{}location/wx/{proxy_passhttp://127.0.0.1:7002/;}error_page404/404.html;location=/40x.html{}error_page500502503504/50x.html;location=/50x.html{}}startnginxnginx-t测试nginx语法是否错误nginxstartnginxnginx-sreload重启nginx,修改nginx.conf记得重启其他命令ps-ef|grepnginx显示nginx进程nginx-sstopstopnginxnginx-v查看nginx版本deploymongodbinstallmongodb#sshremote_username@remote_ip连接到服务器#curl-Ohttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz下载#tar-zxvfmongodb-linux-x86_64-3.0.6.tgzunzip#mkdirdata创建数据库文件夹#touchmongodb.log创建日志文件#cd/usr/local/mongodb/bin#./mongod-dbpath=/usr/local/mongodb/data-logpath=/usr/local/mongodb/mongodb.log-logappend-port=27017-fork注意fork是在后台启动的,这样可以避免在执行其他操作之前必须打开窗口重新连接服务器#./mongoconnectmongodbconfigurationwithlinuxstartup在/etc/中添加以下内容rc.local:#rm/usr/local/mongodb/data/mongod.lock停止可能正在运行的mongo#/.../bin/mongod-dbpath/usr/local/mongodb/data-logpath/usr/local/mongodb/mongodb.log-logappend-fork-port27017设置权限#cd/usr/local/mongodb/bin#./mongod-dbpath=/usr/local/mongodb/data-logpath=/usr/local/mongodb/mongodb.log-logappend-port=27017-fork#./mongo>使用admin>db.createUser(>{>user:"root",>pwd:"123456",>roles:[{role:"root",db:"admin"}]>}>)>db.shutdownServer();#./mongod-dbpath=/usr/local/mongodb/data-logpath=/usr/local/mongodb/mongodb.log-logappend-port=27017-fork--auth#db.auth("root","123456")连接mongodb的项目(这里以koa框架egg项目为例,其他节点请自行寻找)#cnpmiegg-mongoose-S//config/plugin.jsexports.mongoose={enable:true,package:'egg-mongoose',}//config/config.default.jsconfig.mongoose={url:'mongodb://127.0.0.1/eggadmin',options:{//如果设置了密码//auth:{"authSource":"admin"},//user:"root",//pass:"123456",}}deploynode项目部署环境AliyunCentOS7.264位本地项目根目录(删除node_modules,建议依赖服务器下载)#tar-zcvf../file_name.tgz.package#scp../file_name.tgzremote_username@remote_ip:/root/www/server上传到服务器server#sshremote_username@remote_ip连接到服务器#cd/root/www#mkdirserver在这里创建一个服务器文件夹,把节点项目代码#cdserver#tar-zxvffile_name.tgz。解压#cnpminstall--production安装生产环境依赖#cnpmi-gpm2downloadpm2#pm2startbin/wwwdaemonstart#pm2restartapp_name|app_idrestart#pm2stopapp_name|app_idstop#pm2list查看进程状态#pm2stopall停止所有应用#pm2start./bin/www--watch监控变化并自动重启egg项目#npmstartrun#npmstopstop3.阿里巴巴节点性能平台监控1.koa项目(类似express项目)#wget-O-https://原始。github用户内容...|bash安装版本管理工具tnvm#source~/.bashrc#tnvmls-remotealinode查看需要的版本#tnvminstallalinode-v3.11.4安装需要的版本#tnvmusealinode-v3.11。新版本的config.json文件如下,对应的访问参数{"appid":""从[节点性能平台](https://node.console.aliyun.com/#!/owned),"secret":""}#cnpminstall@alicloud/agenthub-ginstallagenthub#agenthubstartconfig.json启动agenthub#agenthublist查看agenthublist#ENABLE_NODE_LOG=YESpm2startbin/www由pm2应用管理2.egg项目#cnpminodeinstall-g#nodeinstall--install-alinode^3#cnpmiegg-alinode--save#npmstart//config/plugin.jsexports.alinode={enable:true,package:'egg-alinode',};//config/config.default.jsconfig.alinode={appid:'',secret:'',};##在项目根目录下部署前端项目(这里vue为Example)`npmrunbuild`,然后将dist文件夹中的内容传输到服务器,这里我们将两个项目分区传输到/root/www/app和/root/www/admin,提前记住创建app和admin文件夹##项目实战【全栈项目-基于koa框架egg的服务端接口】(https://github.com/majun00/egg-api)求star~>本人水平有限,欢迎大家交流指正本文为原作者,转载请注明出处。