Linux部署Node服务-2-部署过程
2018-01-31 15:35
423 查看
一、node项目部署过程总结
在已经有前端项目的前提下,走部署这一步(即:最后上线)1.1 域名
购买一个域名(个人练习的话,其实也可以不买,但针对微信公众号,微信小程序的项目必须有域名备案)将域名分为多个二级域名
域名备案 (国内域名都需要备案使用,虽然国外域名不用备案,但功能受限或不能上线,所以建议使用国内域名并备案)
1.2 服务器
可以直接使用阿里云,腾讯云等服务器在自己的电脑(开发主机)上通过ssh来连接上服务器
通过远程命令来控制远程服务器,配置node等相关服务
SSH和SSH客户端
SSH是Secure Shell缩写,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
SSH客户端: “SSH Secure Shell”、“PuTTY”、“securecrt”都是SSH客户端,使用它们就可以在window下去连接并操作linux服务器。
关于SSH的介绍教程:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
1.3 服务器环境
node服务mongodb数据库
nginx前置服务
1.4 服务器安全防护
服务器的安全防护措施:IPtables,Fail2Ban1.5 访问安全
对用户的访问配置SSL证书,用于保护服务器不被外部随意篡改对本地开发主机要上传数据时,需要额外配置SSL加固证书
1.6 远端git存储
为了安全起见,不在本地主机和远程服务器上互传数据,而是通过git作为媒介,本地开发完后提交代码到git仓库,本地通知服务器上获取git新数据为了实现上面的需求,可以在本地主机,远程服务器上都安装PM2
1.7 端口配置
使用Nginx占用80网络端口对于不同的访问,使用nginx转发对应请求到对应端口
1.8 域名解析
将主域名解析为多个二级域名,主机下的不同域名分配不同的二级域名二、购买域名和服务器及备案
2.1 域名
买域名的大站:阿里云(中国万国)、爱名网、GoDaddy(国外)1、域名
尽量不要选择混合域名
要么纯英文,纯数字,纯拼音
2、后缀
尽量使用.com,.cn域名
2.2 域名解析
DNSPod是一个免费的域名解析网站,可用来解析域名2.3 服务器选择
1、主机- 国外:亚马逊 AWS、Linode、DigiOcean、Heroku(可直接部署node)
- 国内:阿里云ECS(推荐)、青云、UCloud、百度云
2、服务器系统
- 以Ubutu 14.04为例
2.4 备案
个人备案按照阿里云的提示步骤一步步进行就好了,一般一周左右就可以搞定3、登录服务器
ssh root@123.22.235.1 (ip为阿里云主机的公网IP) password:*** (为购买服务器时设置的root密码)
三、虚拟机的Ubuntu系统中安装Node环境
3.1 安装nvm
nvm是一个node的版本管理工具,用来安装node是很方便的(亲测:用nvm安装的node不需要去单独配置node的环境变量,这对于我这个linux小白来说简直太好了)。# 安装nvm (根目录中) cd / sudo wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash # 重启cmd来检查是否安装成功(当输入以下命令后显示出nvm表示安装成功) command -v nvm # 安装node (nvm install version) version为node版本号 nvm install 8.9.3 # 安装完后检查 node -v =>8.9.3 npm -v => 5.6
3.2 ssh远程服务
每次要更新远程服务器中的数据,或者要在另一台计算机上操作服务器时,需要用到ssh远程服务。# 服务器中安装ssh服务 sudo apt-get install openssh-server # 查看服务是否启动 sudo ps -e|grep ssh // (如果能看到sshd,代表服务已经启动了) //如果没有启动:sudo service ssh start (启动ssh服务) # 修改ssh配置文件 sudo vim /etc/ssh/sshd_config // (进入到对sshd_config的编辑模式,注:vim需要安装使用) 在PermitLogin widthout-password用#注释掉, 再添加一行:PermitRootLogin yes 输入:wq保存并退出 # 查看服务器IP ifconfig //在inet addr后面显示的就是服务器ip # 使用Putty远程连接服务器 下载Putty——打开Putty.exe——在Host Name处输入 root@192.168.x.xxx —— 点击Open连接 输入密码进入到服务器控制面版 (注:root为你装系统时设定的登录用户名)
3.3 增强服务器的安全性
对于远程服务器的安全性可以的解决方案1. 改远程服务端口
2. 在使用了本地私钥进行无密码登录的情况下,可以禁止PermisstRootLogin
- 例:改远程服务端口
# 打开ssh的配置文件进行编辑 sudo vim /etc/ssh/sshd_config # 系统会提示输入密码 # 在Port处修改端口号 :wq! //完成编辑并保存退出
3.4 使用sftp工具远程查看服务器文件
在配置好以上文件后,最后一步通过sftp工具实现远程访问文件夹,将本地的项目传送到远程服务器上了。参考图形化工具:WinScp,Filezilla
# 以WinScp为例 # 1、下载安装(百度就有) # 2、新建会话 # 3、输入服务器主机地址及端口,以及登录用户名 # 4、根据提示输入密码连接 # 5、连接成功后——左边为本机目录,右边则为服务器文件夹目录 # 6、新建一个www文件夹用于存放网站项目(以后的项目都可以放到此目录下) sudo mkdir www cd www # 7、查看文件夹权限(默认只有root用户可以读写该文件夹,所以当前用户需要修改文件夹必主) chown user www #user为当前用户的用户名 # 8、当前用户有了www的读写权限后,使用express创建一个简单的node服务应用 express test cd test npm install npm start # 9、在浏览器中访问服务器IP:port,当能够访问时表示此应用搭建完成
相关文章推荐
- Linux服务器中部署Node服务学习-1-部署准备
- 【初级篇】Linux下部署DNS域名解析服务
- 在linux部署hornetq为系统服务
- Node服务一键离线部署
- Linux常用命令(一)服务控制及优化启动过程
- 一个Linux下自动部署Web服务的脚本
- linux企业常用服务---部署lnmp环境
- Linux服务之Centos6.3下利用open***部署远程***服务
- 在 Linux 服务器上部署 oracle10gr2 数据库全过程
- linux集群自动化免密部署服务
- linux开通vsftpd服务过程
- Linux环境redis的下载安装部署过程
- linux 后台运行node服务指令
- Linux使用node.js部署react.js到腾讯云
- 使用pm2部署node服务
- LINUX 部署 WEB.PY 验证码服务的 配置说明书
- Linux网络服务之(2)&部署FTP服务
- 通过 Nginx 反向代理部署 Node.js 服务
- Linux常用服务部署与优化之Samba篇
- Node服务一键离线部署