Ubuntu上线部署
登录
查了各种资料未解决,后来一打开服务器控制台,看到提示说没有配置安全组,可能导致端口无法使用。
0.0 新手表示好费解!慢慢消化...总之我添加了如下安全组。mark一下,以后有问题再回头看:
总之,终于登录成功,显示如下:
点击更多可以更改系统盘。这里我把系统盘改成了14.04的。
然后又出了问题...真是一部一个坑啊!
解决办法:执行下面语句把跟主机ip相关的删掉!登入成功。
~# vim ~/.ssh/known_hosts
终于登入成功...
一些常用命令
1)查看有没有别的数据盘:
~# fdisk -l
这样就是没有:
2)ctrl+l清空bash。更多bash快捷键,点我:0.0
3)查看硬盘使用情况:
~# df -h
4)Ctrl+D退出命令行环境,与ctrl+c不一样的!
5)按上键可以调出用过的命令哦。
更多
一般来说,我们为了更加安全还应该做下面这些事情:
1.配置root及应用账号权限
2.配置本地无密码SSH登陆
3.增强服务器安全等级
4.修改默认端口号
5.配置iptables和Fail2Ban增强安全防护
但是作为一个FEer,就想了解一下服务器端部署过程,暂且先进入环境安装阶段!
搭建服务器的nodejs环境
先更新一下系统吧!
~# sudo apt-get update
安装相关的模块/包文件
~# sudo apt-get install vim openssl build-essential libssl-dev wget curl git
上github找到nvm的安装命令:
~# wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
然后按照指示关闭当前窗口,重新开一个,输入nvm就可以看到许多的提示命令了,也就是说我们的nvm安装成功了。
下一步安装node,安装6.9.5版本:
~# nvm install v6.9.5
指定一下node版本:
~# nvm use v6.9.5
~# nvm alias default v6.9.5
有时连不上npm或者下载很慢,配置一个registry参数来指定用国内的淘宝源:
~# npm --registry=https://registry.npm.taobao.org install -g npm
增加系统文件监控数目
~# echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
安装cnpm(网络不是太慢的情况下还是推荐使用npm)
~# npm --registry=https://registry.npm.taobao.org install -g cnpm
其他用到的也顺手安装一下
~# npm install pm2 webpack gulp grunt-cli -g
跑一下试试!
~# vi app.js
const http = require('http') http.createServer(function(req, res) { res.writeHead(200, {'Content-Type':'text/plain'}) res.end('sccess!') }).listen(80) console.log('server running on http://120.79.140.172')
~# vi app.js
打开http://120.79.140.172成功显示出了success!
通常网站需要满足的:
1)稳定且持续的提供服务;
2)能够通过域名或ip访问到。
所以把我们不能每次通过node app.js这种来做。而是要能够持续的提供访问服务。这里用到pm2来处理。
借助pm2让nodejs服务常驻
安装
之前安装过了pm2
使用
简单一句,就能使服务一直开着,而不是ctrl+c就关闭了...现在按ctrl+d也可以看到success
~# pm2 start app.js
当前运行的node服务有哪些
~# pm2 list
看某一个服务的详细信息(app是name)
~# pm2 show app
查看当前实时日志
~# pm2 logs
停止PM2列表中所有的进程
pm2 stop all
配置Nginx实现反向代理Nodejs端口
删除apache
~# update-rc.d -f apache2 remove
~# sudo apt-get remove apache2
更新包列表
~# sudo apt-get update
安装nginx
~# sudo apt-get install nginx
进入 /etc/nginx/,有一个conf.d文件夹,进入,新建一个配置文件hepeili-cn-80.conf
~# sudo vim hepeili-cn-80.conf
upstream hepeili{ server 127.0.0.1:80; } server { listen 80; server_name 120.79.140.172; location / { proxy_set_header X-Real-Ip $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header host $http_host; proxy_set_header X-Nginx-Proxy true; proxy_pass http://hepeili; proxy_redirect off; } }
测试配置文件是否正确
sudo nginx -t
重启nginx
sudo nginx -s reload
出错
查看有哪些进程
lsof -i :80
杀死pm2进程。
执行:
nginx -c /etc/nginx/nginx.conf nginx -s reload
upstream负载均衡