[实战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

alt sogego.com 和 phoneqq.com 基于Ubuntu,Tengine服务器构建Git管理NodeJs,Redis,MongoDB的网站 格式化新分区

**2、对数据盘进行分区 ** 执行命令:fdisk -S 56 /dev/xvdb 对数据盘进行分区;

fdisk: unable to open /dev/xvdb: Permission denied 出现无权限提示,

再次输入:sudo fdisk -S 56 /dev/xvdb

根据提示,依次输入 n, p, 1 ,两次回车,wq,分区就开始了,很快就会完成。

alt sogego.com 和 phoneqq.com 基于Ubuntu,Tengine服务器构建Git管理NodeJs,Redis,MongoDB的网站 格式化新分区

**3、 查看新的分区 **
使用命令:sudo fdisk -l 可以看到,新的分区xvdb1已经建立完成了。

alt sogego.com 和 phoneqq.com 基于Ubuntu,Tengine服务器构建Git管理NodeJs,Redis,MongoDB的网站 格式化新分区

4、格式化新分区,使用ext4格式(因为我们要使用mongodb,所以这个文件格式比ext3要好一些)

使用命令:sudo mkfs.ext4 /dev/xvdb1 对新分区进行格式化,格式化的时间根据硬盘大小有所不同。

alt sogego.com 和 phoneqq.com 基于Ubuntu,Tengine服务器构建Git管理NodeJs,Redis,MongoDB的网站 格式化新分区

**5、添加分区信息 **
执行命令:sudo vi /etc/fstab

在最后一行添加:/dev/xvdb1 /data ext4 defaults 0 0

保存后退出

alt sogego.com 和 phoneqq.com 基于Ubuntu,Tengine服务器构建Git管理NodeJs,Redis,MongoDB的网站 格式化新分区

然后执行命令:cat /etc/fstab 来查看,出现以下信息就表示写入成功。

  • 如果需要把数据盘单独挂载到某个文件夹,比如单独用来存放网页,可以修改以上命令中的/data部分

**6、挂载新分区 **
首先创建挂载目录:

cd / 进入到根目录

sudo mkdir /data 创建data目录用来挂载那块硬盘

执行命令:sudo mount -a 挂载新分区,

执行命令:df -h 出现以下信息就说明挂载成功,可以开始使用新的分区了。

alt sogego.com 和 phoneqq.com 基于Ubuntu,Tengine服务器构建Git管理NodeJs,Redis,MongoDB的网站 格式化新分区

**7、sudo dpkg-reconfigure tzdata 设置时区 **
然后按照提示选择 Asia对应的序号,选完后会显示一堆新的提示—输入城市名,如Shanghai

alt sogego.com 和 phoneqq.com 基于Ubuntu,Tengine服务器构建Git管理NodeJs,Redis,MongoDB的网站 格式化新分区

alt sogego.com 和 phoneqq.com 基于Ubuntu,Tengine服务器构建Git管理NodeJs,Redis,MongoDB的网站 格式化新分区

**执行命令:sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime **

**8、服务器安装前准备 **
sudo apt-get update

sudo apt-get upgrade

9、执行命令:sudo reboot now 重新启动


2 回复

为了构建一个基于 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

  1. 首先确保系统是最新的:
    sudo apt-get update
    sudo apt-get upgrade
    
  2. 安装Node.js:
    curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
    sudo apt-get install -y nodejs
    

安装MongoDB

  1. 添加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
    
  2. 更新apt并安装MongoDB:
    sudo apt-get update
    sudo apt-get install -y mongodb-org
    
  3. 启动MongoDB服务:
    sudo systemctl start mongod
    sudo systemctl enable mongod
    

安装Redis

  1. 安装Redis:
    sudo apt-get install -y redis-server
    
  2. 启动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接口来展示数据库中的数据。你可以根据实际需求调整这部分代码。

回到顶部