基于Node.js将个人网站部署到云端ECS
- 一、如何购买ECS以及如何使用学生认证优惠?
- 1.进入阿里云网站,进行学生认证
- 2.购买学生优惠,免费试用一个月
- 3.重置个人密码
- 二、服务器的配置以及与宝塔面板的链接
- 1.个人电脑打开终端(win+R->cmd)
- 2.复制对应的命令到终端Enter,安装宝塔面板
- 3.服务器端口放行
- 4.登录宝塔面板
- 三、安装Nodejs导入文件部署个人网站
- 1.服务器下载nodejs
- 2.导入文件
- 3.开放nodejs代码中所写的端口
- a.宝塔面板端口开放:
- b.服务器端端口开放:
- 4.运行nodejs代码,部署网页
- 5.nohup程序后台运行
- 6.网页发布成功进行访问
- 四、常见问题及其解决方法
- 1.重装系统的方法步骤
- 2.重置服务器密码后,终端无法连接
- 3.发布后图片不能正常加载
- 4.Ubuntu安装nodejs比Centos便捷的原因
超级详细的个人网站在ECS部署的讲解,包含服务器选购,宝塔面板与服务器的绑定(**宝塔面板有所改动!!注意**)虽然逆天,但是能用......,以及个人网站部署的具体注意事项!
一、如何购买ECS以及如何使用学生认证优惠?
1.进入阿里云网站,进行学生认证
点击阿里云进行登录,登陆完成后点击个人和学生认证进行个人和学生认证,注意进行学生认证需进行个人认证。(只进行个人认证也可,本次优惠针对新用户不区分是否为学生。)
2.购买学生优惠,免费试用一个月
点击产品,点击云服务器ECS
学生优惠可以免费试用1个月,可自行领取
3.重置个人密码
二、服务器的配置以及与宝塔面板的链接
1.个人电脑打开终端(win+R->cmd)
2.复制对应的命令到终端Enter,安装宝塔面板
Centos/Alibaba Cloud Linux 安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
Ubuntu/Deepin安装命令:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
出现判断语句,按要求同意y或者yes,之后自动安装,大概需要2-10分钟,看自己电脑配置和网速,耐心等待…可以先来摸亿会儿鱼,摸鱼🐟
安装成功页面:
3.服务器端口放行
4.登录宝塔面板
点击外网面板地址,第一次访问会有安全提醒,忽略即可
输入username和password,之后会跳转到另一个网页,然后自己注册账号,注册完毕后关闭此页,回到上一页,输入注册的手机号和密码
绑定完成界面如下:
三、安装Nodejs导入文件部署个人网站
1.服务器下载nodejs
- Centos
Centos服务器如何安装Nodejs
- Ubuntu
直接输入 apt install nodejs
命令即可
Ubuntu服务器如何安装Nodejs
找到对应自己系统的代码复制到服务器终端(宝塔终端,个人ssh终端也可)即可,Ununtu系统即可直接复制一行命令安装。
以下二选一:
2.导入文件
附录 Nodejs 服务器代码 参考如下:
const http = require('http');
const fs = require('fs');
const path = require('path');
const server = http.createServer((req, res) => {
let filePath = '.' + req.url;
if (filePath === './') {
filePath = './Index.html';
}
const extname = path.extname(filePath);
let contentType = 'text/html';
switch (extname) {
case '.js':
contentType = 'text/javascript';
break;
case '.css':
contentType = 'text/css';
break;
case '.json':
contentType = 'application/json';
break;
}
filePath = path.join(__dirname, filePath);
fs.readFile(filePath, (err, content) => {
if (err) {
if (err.code === 'ENOENT') {
// 文件不存在时返回 404 错误
fs.readFile('./404.html', (err, content) => {
res.writeHead(404, { 'Content-Type': 'text/html' });
res.end(content, 'utf-8');
});
} else {
// 发生其他错误时返回 500 错误
res.writeHead(500);
res.end('Server Error: ' + err.code);
}
} else {
res.writeHead(200, { 'Content-Type': contentType });
res.end(content, 'utf-8');
}
});
});
const port = 6332;//个人端口号,即后续需要开放的端口号,自行设置
server.listen(port, () => {
console.log(`Server is running on http://个人公网IP:${port}`);
});
3.开放nodejs代码中所写的端口
a.宝塔面板端口开放:
b.服务器端端口开放:
4.运行nodejs代码,部署网页
找到自己存放nodejs服务器端代码的文件并复制所在路径
点击终端,输入以下的命令
cd 复制的路径
node server.js(自己的nodejs代码文件)
此时发布成功,在不关闭此终端的前提下就可以去访问自己的网页了
http://服务器公网IP:nodejs开放端口号
5.nohup程序后台运行
注意自己的终端不可关闭,关闭程序后,网页会停止发布,所以就用到了Linux nohup 命令,即在运行node server.js前加一个nohup,保证了即使关闭终端也会正常运行程序。
nohup node server.js
6.网页发布成功进行访问
此时即使关闭此终端也可以正常访问自己的网页
http://服务器公网IP:nodejs开放端口号
四、常见问题及其解决方法
1.重装系统的方法步骤
先停止服务器
服务器停止后,点击更换操作系统即可
2.重置服务器密码后,终端无法连接
解决方法:
因为公钥已经更改,你可以更新或删除known_hosts文件中的旧公钥条目,即运行以下命令即可!
ssh-keygen -R 服务器公网IP
3.发布后图片不能正常加载
原因:
1.路径问题:文件路径使用英文,最好在最初就全部使用英文命名
2.文件权限问题:未给服务器文件访问权限
4.Ubuntu安装nodejs比Centos便捷的原因
Ubuntu直接输入 apt install nodejs
命令即可,因为Ubuntu系统版本更新较快,软件仓库中的软件比较新,nodejs基本为最新的LTS版本,而且不会出现因系统版本过低出现的一系列问题,而Centos则会出现因系统版本过低而不支持部分nodejs版本的情况,所以在使用Centos系统的服务器时,建议选择高版本系统。