媒介
作为一位前端工程师,不仅要能写前端页面,还要懂前端工程,种种库,种种框架,种种衍生言语,信手捏来。
假如你想要成为一位全栈工程师,那末就必需要学会Node.js,学会线上效劳器布置和宣布。
预备
为了防止个人花钱买云效劳器。我实验的体式格局是当地Vmware假造机(装ubuntu 16.04)和当地windows平台(win7)。
1 Vmware假造机装上ubuntu(教程网上找)
装好今后,调解下窗口:
2 当地win7装上xshell
最先
固然,你搞Node.js,一定假造机上要设置NodeJs环境
假造机搜Terminal,翻开敕令行,顺次输入一下敕令。
1 晋级一下包
sudo apt-get update
2 装置一些必备东西
sudo apt-get install git vim openssl openssh-server build-essential libssh-dev wget curl
openssh-server是我们经由过程ssh衔接用到。
curl是一个Linux下的传输东西
git是装置我们的Node.js源码须要的版本东西
3 装置nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
4 装置nodejs
nvm install v8.1.2
nvm use v8.1.2
5 封闭防火墙(由于背面我们要ssh连到这台假造机,所以防火墙最好是封闭)
sudo ufw stop
6 装置yarn vue-cli pm2
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
npm install vue-cli pm2 -g
yarn是一个包管理东西,相当于npm
vue-cli是一个Vue的敕令行东西
pm2是Node效劳管理东西
测试假造机上Node是不是装置好
假造机上建立一个server.js:
vi server.js
拷贝代码进去:
然后按下:wq! 保留
末了测试:
pm2 start server.js
假如看到以下状况,申明启动胜利。
当地windows(win7)衔接到假造机
1 修正sshd_config(保证能经由过程暗码登录)
vim /etc/ssh/sshd_config
找到:
Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes
修正成:
Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
2 假造机启动ssh
sudo service ssh start
3 检察ip(记着你的IP)
ifconfig
4 翻开xshell
输入ssh ubuntu@192.168.150.129
@前面是用户名 @背面是IP。 用户名必需准确,否则会提醒效劳器谢绝暗码。别的假造机的收集设置是NAT,不须要改成桥接。
一般情况下能链接胜利
建立一个私有堆栈
我用的是bitbuket,本身先到上面罕见一个push2Server的堆栈。
然后当地clone下来
目次下建立一个server.js,代码和上面的一样。另有一个ecosystem.json(这个是pm2自动布置须要的),目次构造以下:
ecosystem.json这文件的设置很主要。
{
"apps": [
{
"name": "Test",
"script": "server.js",
"env": {
"COMMON_VARIABLE": "true"
},
"env_production": {
"NODE_ENV": "production"
}
}
],
"deploy": {
"production": {
"user": "ubuntu", //注重点1: user必需是你ubuntu的名字
"host": "192.168.150.129", //注重点2: ip保证准确
"port": "22", //端口保证准确
"ref": "origin/master",
"repo": "git@bitbucket.org:YellMan/push2server.git", //注重点3 必需用git@..开首 不要 用https开首的
"path": "/home/ubuntu/www/testproject/production",//注重点4 目次最好是绝对途径
"ssh_options": "StrictHostKeyChecking=no",
"env": {
"NODE_ENV": "production"
}
}
}
}
直接看注重点3: 由于假造机上要clone堆栈代码,所以假造机上须要设置一下,git堆栈的key.
到bitbuket上面的堆栈,增加一个key。
key怎样天生看教程:https://confluence.atlassian….
$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
$ pbcopy < ~/.ssh/id_rsa.pub
末了一步很主要:到假造机上运转:
ssh -T git@bitbucket.org
注重点4:由于pm2要在假造机上建立这个途径:/home/ubuntu/www/testproject/production。所以要保证testproject和www途径必需有权限。/home/ubuntu是我的根途径,然后建立www目次,目次下再建立testproject.
假造机上给一下权限:
sudo chmod 777 www
sudo chmod 777 testproject
末了,提交代码到长途堆栈。
宣布前设置
当地运转:
pm2 deploy ecosystem.json production setup
假如涌现一下毛病,重试一下就好了:
假如涌现一下毛病:
在效劳端设置一下ssh key到的私有堆栈(看注重点3)
假如涌现以下毛病:
这是由于pm2是全局装置的,途径不是在默许途径下面。所以须要用ls敕令link一下.
在假造机运转以下敕令:
whereis pm2
pm2: /opt/nodejs/bin/pm2
sudo ln -s /opt/nodejs/bin/pm2 /usr/bin/pm2
假如涌现一下毛病:
同理:
ubuntu@ubuntu:~$ whereis node
node: /usr/bin/node /home/ubuntu/.nvm/versions/node/v8.1.2/bin/node
sudo ln -s /home/ubuntu/.nvm/versions/node/v8.1.2/bin/node /usr/bin/node
末了宣布项目
pm2 deploy ecosystem.json production
假造上看一下是不是自动布置胜利:
祝贺你,你胜利了!
以上就是本日分享的内容,感谢浏览,迎接留言交换。