[实战AWS EC2]二、基于Ubuntu,Tengine服务器构建Git管理Nodejs,Redis,MongoDB的网站
[实战AWS EC2]二、基于Ubuntu,Tengine服务器构建Git管理Nodejs,Redis,MongoDB的网站
**技术交流加入QQ群:261654896 **
实战AWS EC2文章目录http://cnodejs.org/topic/5295e58aa6957a0809b0fe43
**1、执行命令:df –h 在没有分区和格式化数据盘之前,是无法看到数据盘的. ** 执行命令:fdisk -l 无响应,因为我们还在ubuntu用户下
再执行命令:sudo fdisk -l 可以看到
Disk /dev/xvdb: 32.2 GB, 32212254720 bytes
**2、对数据盘进行分区 ** 执行命令:fdisk -S 56 /dev/xvdb 对数据盘进行分区;
fdisk: unable to open /dev/xvdb: Permission denied 出现无权限提示,
再次输入:sudo fdisk -S 56 /dev/xvdb
根据提示,依次输入 n, p, 1 ,两次回车,wq,分区就开始了,很快就会完成。
**3、 查看新的分区
**
使用命令:sudo fdisk -l 可以看到,新的分区xvdb1已经建立完成了。
4、格式化新分区,使用ext4格式(因为我们要使用mongodb,所以这个文件格式比ext3要好一些)
使用命令:sudo mkfs.ext4 /dev/xvdb1 对新分区进行格式化,格式化的时间根据硬盘大小有所不同。
**5、添加分区信息
**
执行命令:sudo vi /etc/fstab
在最后一行添加:/dev/xvdb1 /data ext4 defaults 0 0
保存后退出
然后执行命令:cat /etc/fstab 来查看,出现以下信息就表示写入成功。
- 如果需要把数据盘单独挂载到某个文件夹,比如单独用来存放网页,可以修改以上命令中的/data部分
**6、挂载新分区
**
首先创建挂载目录:
cd / 进入到根目录
sudo mkdir /data 创建data目录用来挂载那块硬盘
执行命令:sudo mount -a 挂载新分区,
执行命令:df -h 出现以下信息就说明挂载成功,可以开始使用新的分区了。
**7、sudo dpkg-reconfigure tzdata 设置时区
**
然后按照提示选择 Asia对应的序号,选完后会显示一堆新的提示—输入城市名,如Shanghai
**执行命令:sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime **
**8、服务器安装前准备
**
sudo apt-get update
sudo apt-get upgrade
9、执行命令:sudo reboot now 重新启动
为了构建一个基于 Ubuntu、Tengine 服务器的 Git 管理 Node.js、Redis 和 MongoDB 的网站,我们需要先准备好系统环境,并确保所有必要的服务都已正确安装和配置。下面是详细的步骤:
步骤 1: 配置系统环境
安装必要的软件包
sudo apt-get update
sudo apt-get upgrade
设置时区
sudo dpkg-reconfigure tzdata
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
步骤 2: 分区和格式化数据盘
假设我们有一个未分区的数据盘 /dev/xvdb
。
创建分区
sudo fdisk -S 56 /dev/xvdb
# 在交互模式中:
# 输入 `n` 创建新分区
# 输入 `p` 选择主分区
# 输入 `1` 选择分区号
# 按两次回车键接受默认的起始和结束扇区
# 输入 `w` 保存并退出
格式化分区
sudo mkfs.ext4 /dev/xvdb1
添加分区到 /etc/fstab
echo "/dev/xvdb1 /data ext4 defaults 0 0" | sudo tee -a /etc/fstab
挂载分区
sudo mkdir /data
sudo mount -a
步骤 3: 安装 Node.js、Redis 和 MongoDB
安装 Node.js
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
安装 Redis
sudo apt-get install -y redis-server
安装 MongoDB
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org
步骤 4: 配置 Tengine
安装 Tengine
sudo apt-get install -y nginx
配置 Tengine
编辑 /etc/nginx/nginx.conf
文件,添加或修改以下内容:
http {
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
}
}
}
步骤 5: 部署 Node.js 应用
创建一个简单的 Node.js 应用
在 /data/app
目录下创建一个简单的 Node.js 应用:
// app.js
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`App listening at http://localhost:${port}`);
});
安装依赖
cd /data/app
npm init -y
npm install express
启动应用
node app.js
总结
通过上述步骤,我们成功地在 AWS EC2 实例上配置了一个基于 Ubuntu 的服务器,包括 Node.js、Redis 和 MongoDB 的安装和基本配置,以及使用 Tengine 作为反向代理服务器。
针对题目“[实战AWS EC2]二、基于Ubuntu,Tengine服务器构建Git管理Nodejs,Redis,MongoDB的网站”,以下是关于如何配置一个包含Node.js、Redis和MongoDB的服务步骤。
安装Node.js
- 首先确保系统是最新的:
sudo apt-get update sudo apt-get upgrade
- 安装Node.js:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt-get install -y nodejs
安装MongoDB
- 添加MongoDB仓库:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
- 更新apt并安装MongoDB:
sudo apt-get update sudo apt-get install -y mongodb-org
- 启动MongoDB服务:
sudo systemctl start mongod sudo systemctl enable mongod
安装Redis
- 安装Redis:
sudo apt-get install -y redis-server
- 启动Redis服务:
sudo systemctl start redis.service sudo systemctl enable redis.service
示例Node.js应用
假设你有一个简单的Node.js应用app.js
,代码如下:
const express = require('express');
const MongoClient = require('mongodb').MongoClient;
const app = express();
const port = 3000;
// MongoDB连接字符串
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(err => {
const collection = client.db("test").collection("devices");
// 连接成功后的操作
console.log("Connected to MongoDB");
app.get('/', (req, res) => {
collection.find().toArray((err, result) => {
if (err) throw err;
res.send(result);
});
});
app.listen(port, () => {
console.log(`App running on port ${port}`);
});
// 关闭连接
client.close();
});
app.listen(port, () => {
console.log(`App listening at http://localhost:${port}`)
});
以上示例代码展示了如何在Node.js应用中连接MongoDB数据库,并提供一个简单的HTTP接口来展示数据库中的数据。你可以根据实际需求调整这部分代码。