apt-get install git vim openssl wget curl
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
安装完记得重启ssh。
service sshd restart
nvm ls //显示当前的node版本
nvm install 10.11.0 //安装最新的node10.11.0版本
nvm alias default 10.11.0 //将10.11.0设置为默认版本
vi server.js //生成一个js文件,复制下面的文本
vim命令:esc退出编辑,:wq! 命令保存
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
运行node server,打开3000端口监听,再另开一个ssh终端,访问本地端口,或者直接后台运行在访问也行
node server.js >out.log 2>&1 &
访问结果:
curl http://127.0.0.1:3000 //显示hello world
apt install npm
npm install pm2 -g
pm2是一个带有负载均衡功能的Node应用的进程管理器。当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载,PM2是完美的。
命令 | 作用 |
---|---|
pm2 start server.js | 启动server程序,此时不需要另外开启终端,3000端口就会一直处于监听 |
pm2 list | 显示当前运行的node程序 |
pm2 show server | 查看server程序的详细信息 |
pm2 stop server | 停止server程序 |
pm2 restart server | 重启server程序 |
pm2 logs | 查看日志 |
apt install nginx
nginx -v
cd /etc/nginx/conf.d
首先,修改mongo.conf配置文件
sudo vi /etc/mongo.conf
将bindIp:127.0.0.1修改为0.0.0.0,表示接受任何IP的连接。
然后,重新启动MongoDB服务。
service mongod restart
sudo ufw allow 27017
参考文档:开启阿里云服务器端口
进入阿里云ECS服务器控制台,找到安全组配置,点击配置规则,再点击添加安全组规则,在弹出的窗口中输入端口27017/27017,授权对象为0.0.0.0/0即可。
参考文档:
1.博客园:Nodejs+Express创建HTTPS服务器
参考文档:
1.博客园:CENTOS7下安装REDIS
2.npm:redis
参考文档:Moving to Express 4
npm install -g npm-check-updates //安装
ncu -u //更新dependencies到新版本
static
都分离为单独的模块。4.x中各个模块需要单独安装,并在js文件中导入依赖。//3.x代码
app.configure(funtcion(){
app.use(express.static(__dirname+'/public'));
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
})
//4.x代码
var express=require('express');
var morgan=require('morgan');//logger模块的新名字
var bodyParser=require('body-parser');
var methodOverride=require('method-override');
var app=express();
app.use(express.static(__dirname+'/public'));
app.use(morgan('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.use(methodOverride());
process.env.NODE_ENV
或者app.get('env')
来检测环境并相应的配置应用程序。//3.x代码
app.configure('development', function() {
// configure stuff here
});
//4.x代码
var env = process.env.NODE_ENV || 'development'; //控制台中需要设置环境变量set NODE_ENV=test
if ('test' == env) {
// configure stuff here
}
参考文档:CSDN:七牛云外链绑定自己域名
在参照参考文档3绑定域名前,搞清域名解析的概念,域名解析就是域名到IP地址的转换过程:其中,A记录就是制定域名对应的IP地址记录;CNAME记录就是别名指向,用子域名来代替IP地址。所以绑定域名就相当于把自己备案的二级域名解析到七牛的服务器上。
参考文档:
- 使用Nginx反向代理nodejs http和https
- Nginx安装SSL配置HTTPS超详细完整全过程
- Nginx 服务器证书安装
配置nginx.conf定义http的重定向。
server {
server_name www.clhw.xyz; #填写绑定证书的域名
listen 443 ssl;
ssl_certificate /root/nginx/cert/cert.crt;
ssl_certificate_key /root/nginx/cert/cert.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header X-Nginx-Proxy true;
}
}