本地项目开发完毕,如何部署到服务器却成了难题,如果不熟悉Linux那简直是遭罪
做个搭建记录,万一以后又用上了呢
这一切都建立在已经有域名并且已经解析到服务器的前提下
拷贝文件到服务器
本地写完nodejs过后,将这些后台代码和网页静态文件一并拷贝到服务器
可以使用scp、ftp、rsync等。 感觉还是rsync最方便
服务器安装mongodb并导入mongodb数据
安装mongodb
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/
我用的是debian8, 所以采用的是debian8 的安装方式
依次执行下面代码就行了
|
|
|
|
|
|
|
|
为mongodb启用验证
创建用户
1.首先使用mongo命令进入mongodb,然后创建一个admin 用户
|
|
|
|
2.检查创建是否生效, 如果结果是1, 则表示创建的用户能被授权成功
|
|
然后使用exit退出
3.开启授权
|
|
将security一行取消注释,并在下方添加上authorization: enable
|
|
4.重启并检查重启是否成功
|
|
5.使用创建好的admin用户登录并创建新用户给blog数据库
|
|
nodejs中使用的连接方式 mongodb://youruser:yourpassword@localhost/yourdatabase
导入导出mongodb数据
本地开发完毕后,需要将mongodb数据导出,然后将数据拷贝到服务器
本地导出, 在终端输入命令([]表示可省略)
将导出的文件夹使用rsync一并拷贝到服务器, 然后导入。 注意导入的数据库是服务器创建的某个数据库名字,不一定要和本地开发时用的数据库名字一样;导入数据时一定要先创建好数据库
|
|
服务器安装nginx 对Node.js进行端口映射
通常时候一个服务器会跑很多Node.js程序,监听的端口一般都不是80,而是8888, 9999什么的,毕竟80端口只有一个,不可能随便给的。然而客户端访问网页的时候通常都是使用80或者443端口。这时候就需要端口nginx 搭配 Node.js做端口映射了
1.安装
|
|
2.编辑配置文件,向http里面添加如下配置
|
|
然后在服务端启动程序
这时候就可以通过服务器ip + Node.js监听port方式访问了,比如浏览器输入 http://123.123.123.123:8888
使用Let’s Encrypt 证书
毕竟小绿锁看起来还是很舒服的
可以使用certbot快速生成证书。如果觉得命令行操作起来麻烦, 可以使用一个在线网站sslforfree在线申请
使用方式:
注意这里-w 一定要深入到public, 因为我blog放的是整个Node.js程序, 而静态文件是在public下
证书生成完毕后会在/etc/letsencrypt/live/blog.linyqiang.com/下面生成相应的文件。将nginx的ssl_certificate和ssl_certificate_key配置好, 然后nginx -s reload就行了
letsencrypt 会访问host/.well-known/acme-challenge 来检测该域名的有效性。如果出现访问错误,开一在Node.js程序中加入相应的路由
|
|
向路由中添加一下代码即可
最后
然后https://blog.linyqiang.com 就成功上线啦!蛤蛤蛤蛤