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

06-个人博客笔记-项目部署到腾讯云服务器

时间:2023-04-03 13:48:37 Node.js

购买云服务器可以选择腾讯云和阿里云,前期可以使用免费的云服务器部署自己的项目。一开始试了腾讯云服务器(windows系统),后来试了阿里云服务器(ubuntu系统),最后购买了腾讯云服务器(ubuntu)。每个平台都遇到过不同的问题,不过都通过google解决了。其实具体步骤可以参考各个平台的文档。下面记录一下我在部署过程中遇到的问题和过程。腾讯云服务器(windows系统)1、在服务器上新建一个ftp站点:参考Win7的IIS搭建FTP服务和用户授权。2、进入腾讯云后台,设置安全组3、安装必要的软件:mongodb、node、npm、nginx3、上传代码到服务器指定目录:下载FileZilla上传工具,填写服务器公网地址,用户名,密码(购买完成后腾讯会发这些信息),默认端口为21(ftp传输方式)阿里云(ubuntu)1.购买后,先重置密码,如果重置为1232,下载FileZilla到连接服务器:填写服务器公网地址,用户名,密码,端口填写22,因为默认是sftp传输方式,用户名填写root。阿里云的ubuntu默认是root,密码是第一步重置的密码。连接完成后,可以看到服务器的目录结构。3、通过sshroot@公网地址连接服务器,进入服务器安装必要的软件。4、为了终端操作方便,可以先安装Oh-my-zsh,步骤如下:安装zsh套件$apt-getinstallzshinstallgit$apt-getinstallgit以上两步安装完成后,执行以下代码curl-Lhttps://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh|sh设置zsh为默认-替换bash,重启终端chsh-s/bin/zsh5,安装mongodb:官方教程6,安装node,安装npmsudoapt-getinstallnodejssudoapt-getinstallnpm7,安装pm2,启动node通过pm2可以让node在终端关闭的情况下仍然运行。npminstallpm2-g8,进入后台代码所在目录,通过npmi安装后台代码需要的库,启动nodepm2startindex.js可能报错importexpressfrom'express';^^^^^^SyntaxError:Unexpectedtokenimport解决方法npminstall-gbabel-clipm2start--interpreterbabel-nodeindex.js通过pm2list查看节点是否启动成功9.安装nginxnginx下载页面查看最新稳定版本:http://nginx.org/en/download.html//下载wget-onginx-1.14.0.tar.gzhttp://nginx.org/download/nginx-1.14.0.tar.gz//解压tar-zxfnginx-1.14.0.tar.gz//进入nginx-1.14.0目录检测安装环境/configure//编译makemakeinstall安装完成10.启动并配置nginx,进入nginx目录,即可看到目录下有sbin目录和conf目录,在sbin目录下可以看到启动nginx,可以在conf目录下配置nginx,首先启动nginx,查看nginx是否正常启动。cd/usr/local/nginxcdsbin在浏览器中输入公网地址nginx,出现如下界面,说明nginx已经启动11.修改nginx配置,nginx配置的具体含义可以自行google,以及下面贴上我的博客和对我有帮助的文档。nginx配置位置总结及重写规则写入用户rootroot;worker_processes1;events{worker_connections1024;}http{includemime.types;default_type应用程序/八位字节流;发送文件;服务器{听8081;服务器名称本地主机;root/home/ubuntu/demo/darrenblog/blogadmin;indexindex.htmlindex.htm;位置/{try_files$uri$uri/@router;索引index.html;}location@router{重写^.*$/index.htmllast;}error_page500502503504/50x.html;location=/50x.html{根html;}location/admin/{proxy_passhttp://127.0.0.1:4000;proxy_set_header主机$host;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;}location/works/{proxy_passhttp://127.0.0.1:3000;proxy_set_header主机$host;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;}#匹配任何以/static/开头的地址,匹配到后,停止搜索正则表达式,使用这个解决加载本地图片交叉问题location^~/static/{}location~.*\.(gif|jpg|jpeg|png)${root/root/demo/server/darrenblog/uploads;#指定图片存储路径proxy_storeon;proxy_store_access用户:rw组:rwall:rw;proxy_temp_path/root/demo/server/darrenblog/uploads;#图片访问路径proxy_set_headerHost127.0.0.1;如果(!-e$request_filename){proxy_passhttp://127.0.0.1:3000;}}}服务器{听8089;服务器名称本地主机;root/root/demo/client/blogclient;indexindex.htmlindex.htm;位置/{try_files$uri$uri/@router;;}location@router{重写^.*$/index.htmllast;}location/tourist/{proxy_passhttp://127.0.0.1:3000;proxy_set_header主机$host:$server_port;}error_page500502503504/50x.html;location=/50x.html{根html;}location/tourist/*{proxy_passhttp://127.0.0.1:3000;}}}腾讯云服务器(ubuntu)ubuntuserver大致配置上面基本都说了。腾讯云的ubuntu服务器默认用户名为ubuntu,其他配置基本相同。需要注意的是nginx的启动启动nginx:sudo/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf注意:-c指定配置文件的路径,如果不加,nginx会自动加载默认路径的配置文件,可以通过-h查看帮助命令。具体配置项目上传github每次提交都是一个分支在线地址