当前位置: 首页 > Web前端 > vue.js

(保姆级教程)如何将博客部署到服务器

时间:2023-03-31 16:54:15 vue.js

前端:vue全家桶后端:koa2数据库:mongodb运行环境:node.jsCDN:七牛云服务器:(腾讯云)Ubuntu18+nginx购买云服务器服务器和域名可以用腾讯云、阿里云等域名购买。网上教程很多,这里就不赘述了。学生一般有优惠。(以下主要是腾讯云的操作步骤)购买后可以查看站内信中的服务器用户名和密码,如果觉得密码太复杂可以重新设置。1、配置安全组:安全组相当于一个虚拟的防火墙,可以在安全组中放行系统对应的端口号和IP访问权限。配置文档可以在这里查看:创建安全组。添加安全组规则。PS:如果使用mongodb,需要在安全组中开放27017的Mongodb数据库端口2.域名解析(需要时间生效):在我的域名中点击Parse,然后选择AddRecordHostRecordRecordTypeLineTypeRecordValueMXPriorityTTL填写域名前缀,例如“www”选择“A”选择“Default”类型请输入您的主机IP地址(公网IP)不需要填写默认为600秒3.域名备案:根据您购买的域名提供的备案服务,一步步递交资料即可PS:云备案-->管理局备案-->公安局备案,20天完成以上三个过程。要操作服务器,您首先需要登录您的服务器。语法如下:ssh用户名@IP地址-p端口号也可以不加-p端口号。当然,如果你不想使用命令行,推荐两个图形化工具:xshell6可以连接远程Server,xftp6可以在本地和远程之间传输文件(也可以用来连接虚拟机)用于安装,您可以在这里看到(免费版),下载链接将通过电子邮件发送给您。在服务器上安装mongodb数据库。以下是在Ubuntu上安装mongodb4.2的步骤,每个系统都不一样。如果之前安装过其他软件包,需要先卸载,否则可能会发生冲突,导致安装不成功。官方文档在这里,大家可以浏览第一步:导入MongoDB的公钥wget-qO-https://www.mongodb.org/static/pgp/server-4.2.asc|sudoapt-keyadd-第2步:为MongoDB创建列表文件路径:/etc/apt/sources.list.d/mongodb-org-4.2.listUbuntu18.04(Bionic):echo"deb[arch=amd64,arm64]https://repo.mongodb.org/apt/ubuntubionic/mongodb-org/4.2multiverse”|sudotee/etc/apt/sources.list.d/mongodb-org-4.2.listUbuntu16.04(Xenial):echo"deb[arch=amd64,arm64]https://repo.mongodb.org/apt/ubuntuxenial/mongodb-org/4.2多元宇宙”|sudotee/etc/apt/sources.list.d/mongodb-org-4.2.list步骤三:更新本地资源包数据sudoapt-getupdate步骤四:安装最新稳定版MongoDBsudoapt-getinstall-ymongodb-org默认路径为:MongoDB存储的数据路径为:/var/lib/mongodbMongoDB的日志文件存储路径为:/var/log/mongodb也可以创建/etc/mongodb.conf,修改data和log的文件路径:sudovim/etc/mongodb.conf(按i插入代码,按esc:wq保存退出)具体vim操作,请看这里的mongodb.conf内容如下:dbpath=/var/lib/mongodb/data/db//数据数据库的路径,根据自己的路径配置logpath=/var/lib/mongodb/log/mongodb.log//log日志的路径,根据自己的路径配置logappend=trueport=27017//默认监听端口号为27017fork=truenoauth=truebind_ip=0.0.0.0配置完成后需要重新加载配置文件,直接运行mongo会报错mongod-f/etc/mongodb.conf安装完成后:启动mongod服务:(一般在27017端口启动)sudoservicemongodstart通过systemctl验证MongoDB是否启动成功status:sudosystemctlstatusmongodboot自启动mongodservice:sudosystemctlenablemongod.service下面两个命令也可以查看MongoDB是否已经启动:netstat-anptu|grep27017ps-ef|mongodb停止MongoDB:sudosystemctlstopmongod重启MongoDB:sudosystemctlrestartmongod输入mongodbshell:mongo如果最左边的部分命令行变成'>',表示进入成功,然后就可以操作数据库创建用户:使用admindb.createUser({user:"root",pwd:"root123",roles:[{role:"root",db:"admin"}]})ps:用户名和密码可以自由设置,即在admin数据库中创建一个root权限的用户,输入exit退出MongoDBshell。启用mongodb认证mongodb默认没有用户名和密码,可以使用--auth启用安全检查vim/etc/mongodb.conf(添加一些配置):auth=true然后需要重启MongoDB:servicemongodrestartlocal连接远程服务器上的mongodb:需要在本地安装mongodbmongo。212.64.90.170:27017>useadmin>db.auth("root","root123")>1出现1,说明登录成功后端连接服务器上的数据库:mongodb://username:password@ip:27017/database?authSource=admin例如:mongodb://root:root123@localhost:27017/blog?authSource=admin如果连接失败,可以使用telnet测试:telnetip27017telnetconnection失败的可能原因1、服务器防火墙没有开放27017端口或者22端口登录服务器。防火墙开启端口命令:sudoufwallow27017查看本地端口开启状态:sudoufwstatus然后需要重启防火墙:sudoufwreload2.bind_ip没有修改0.0.0.0mongodb的配置文件默认为127.0.0.1,默认只有本机可以连接。此时需要配置bind_ip为0.0.0.0,表示接受任何IP的连接。打开/etc/mongodb.conf配置文件,修改bind_ip为0.0.0.0,保存。3、修改后没有重启mongod服务ps:telnet连接成功后,crtl+]然后输入quit退出连接成功,可以远程操作数据库了。推荐两个图形化工具:navicatformongodb安装链接和mongodbcompass安装并使用链接发一个compass连接:(通过ssh连接服务器,然后连接服务器上的数据库)配置nginx安装在服务器上:sudoapt-getinstallnginx过程会让你选一个Y同意占用内存。nginx-v查看是否安装成功。默认路径为:所有配置文件都在/etc/nginx.conf下。程序文件在/usr/sbin/nginx中。在d/下创建了nginx的启动脚本,并在etc/nginx/nginx.conf中添加了配置:http{...server{listen80;//前端运行在80端口server_name域名;//指向域名,可以通过域名Projectroot/home/my-project/访问;//你前端项目索引的位置index.html;location/api{proxy_passhttp://ip:port;//跨域,表示前端所有的/api/xxx请求都会发送到后端服务的运行地址。本例中ip为localhost,port为后端启动的端口}try_files$uri$uri/@router;location@router{重写^.*$/index.htmllast;}gzip上;//启用gzip压缩文件以提高页面加载速度gzip_buffers324k;gzip_comp_level6;gzip_min_length200;gzip_types文本/css文本/xml应用程序/javascript;gzip_varyon;}...}其中,如下代码作用:当vue-router的mode为history时,设置的路径不是真实路径。进入内页后,刷新浏览器,发现会404。所以为了刷新后能找到对应的路径,避免404。try_files$uri$uri/@router;location@router{rewrite^.*$/index.htmllast;}如果前端有多个项目,可以配置多个服务器。有关详细信息,请参阅本文。启动nginx:servicenginxstart注意:更改nginx.conf后,一定要重启nginx:sudonginx-sreload使用ps-ef列出进程列表,然后过滤ps-ef|grepnginx通过grep查看Nginx进程是否存在。关闭nginx:nginx-sstop前端打包部署本地项目npmrunbuild后,将dist中的文件发送到服务器/home/my-project。注意:不要使用外部dist文件夹ps:传输失败的原因可能是普通用户对该文件夹没有足够的权限。xshell连接服务器,修改权限:chmod755文件夹目录后端部署安装node和npm去掉整个后端工程把node_modules以外的东西全部转移到服务器/home,cd到工程所在路径npminstall安装所有需要的依赖npmstart试试看能不能运行成功退出服务器后,node进程自动关闭,项目自动关闭,所以我们需要pm2来守护。全局安装pm2:npminstall-gpm2安装完成后,切换到你的项目所在路径。pm2start./bin/www--watch--watch参数的意思是当你的koa2应用代码发生变化时,pm2会帮你重启Serve。停止命令:pm2stop./bin/www监控各个节点进程的CPU和内存使用情况:pm2monit也可以通过以下方式杀掉进程:netstat-tplnkillxxx结束相应的进程,写在kill之后是进程号PID。至此,个人博客就搭建完成了,在浏览器中输入域名就可以看到自己的博客了。为我的博客Woc12138(持续更新中)前后端代码Github打个小广告。写这篇文章的主要目的是记录和分享,方便自己以后的复习,也让像我这样的新手避免一些坑~如有错误,还望指正。