暂时只演示http的。https类似,需要添加证书。
- 准备代码文件
清单如下
ca package.json public WebServer.js
1
ca 目录存放证书,http可以不要,js代码需要注释掉相关代码。
pubulic 存放html网页,比如随便一个index.html
WebServer.js 是启动nodejs文件代码如下
// 支持HTTP和HTTPS服务
'use strict'
var http = require('http');
var https = require('https');
var fs = require('fs');
var express = require('express');
var serveIndex = require('serve-index');
var app = express(); // 实例化
app.use(serveIndex('./public')); // 发布目录
app.use(express.static('./public')); //
// http server
var http_server = http.createServer(app);
http_server.listen(8866, '0.0.0.0')
var options = {
key: fs.readFileSync('./ca/xxx.fun_rsa.key'),
cert: fs.readFileSync('./ca/xxx.fun.crt')
};
// https server
var https_sever = https.createServer(options, app);
https_sever.listen(4433, '0.0.0.0');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package.json 内容:
{
"name": "webserver",
"version": "1.0.0",
"description": "",
"main": "WebServer.js",
"scripts": {
"start": "node WebServer.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.19.2",
"serve-index": "^1.9.1"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
注意: 这个package.json里的内容很重要,包括了依赖和启动脚本。宝塔面板会据此安装依赖和增加启动项。
- 将代码上传至云主机
- 云主机配置
3.1 绑定域名
这个不同云主机有不同配置的地方,根据需求来。
一定要注意添加:xxx.com , www.xxx.com 两种类型的。
3.2 利用面板配置node环境
面板->网站->node
根据指引添加 Node版本管理器,安装nodejs版本。
3.3 利用面板增加node项目
项目名称、端口号可以随便写。
域名管理:
在这里插入图片描述
外网映射
- 打开端口
面板-安全-添加端口规则,这里步骤3中的端口。
完成以上步骤之后可以正常访问 www.xxx.com, 我输入 xxx.com 会直接跳转成https的。所以暂时无法访问。