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

在前两章中,我们讲了如何对aws ec2选型,以及登录到ec2上,接下来就是。。。

**最终目的是:**如果只有一块EBS,就新建一个/data目录,如果两块以上的EBS,就把第二块EBS给mount到/data目录下,

/data这个目录用来存放mongodb和redis数据库运行文件,结果是:/data/mongodb放mongodb,/data/redis放redis,

/data/dbs/mongodb用来放mongodb产生的数据库文件

/data/dbs/redisdb用来放redis产生的数据库文件

还有程序文件存放在/data/www目录下,结果是:/data/www/sogego.com目录放sogego.com程序文件, 而/data/www/phoneqq.com目录放phoneqq.com程序文件。

git服务器的软连接存放在/data/repo目录,

而mongodb的log,redis的log,nginx的log,supervisor产生的程序的log统统放到/mnt目录下,因为/mnt是instance storage。

最后,我们使用的tengine服务器,因为我们要写很多的lua脚本,所以干脆就把nginx配置文件也作为一个git的程序把它放在 /data/www/tengine目录下,而tengine还是运行在/usr/local/nginx目录下,我们只要把nginx.conf文件指到/data/www/tengine目录就行了。

我们还得安装git服务器,来管理sogego.com和phoneqq.com和tengine的lua脚本及配置文件, 以实现在win7上修改后,直接commit到服务器,而不是用ftp拖拽到服务器

再最后,我们要用supervisor来运行nginx,mongodb,redis和sogego.com以及phoneqq.com的程序文件,以达到如果服务器自动down机后 可以实现重启所有应用,网站可以正常访问,不需要我们再手动重启任何一个服务。

**安装编译环境============ **

sudo apt-get install g++ curl libssl-dev make libpcre3 libpcre3-dev

**安装git 和 ssh 以及python============ **

sudo apt-get install git-core openssh-server openssh-client python-setuptools

**安装nodejs======到系统目录====== **

先进到到某个目录比如 /soft

下载nodejs源代码:wget http://nodejs.org/dist/v0.10.22/node-v0.10.22.tar.gz

tar zvxf node-v0.10.22.tar.gz

**开始安装nodejs **

cd node-v0.10.22

./configure

make

sudo make install

另外如果你卸载nodejs就cd到soft目录下然后

再cd到node-v0.10.22这个目录下

sudo make uninstall

这样就卸载了nodejs


2 回复

[实战AWS EC2]三、基于Ubuntu,Tengine服务器构建Git管理Nodejs,Redis,MongoDB的网站

技术交流加入QQ群:261654896

实战AWS EC2文章目录

在前两章中,我们已经讨论了如何选择AWS EC2实例以及如何登录到EC2实例。接下来我们将详细讲解如何在Ubuntu上搭建一个完整的Web应用平台,包括Node.js、Redis、MongoDB等。

目标概述

我们的目标是在EC2实例上搭建一个高效且易于管理的Web应用平台。具体步骤如下:

  1. 创建 /data 目录,并将第二块EBS挂载到该目录。
  2. 将MongoDB和Redis的数据文件分别存放在 /data/mongodb/data/redis
  3. 程序文件存放在 /data/www 目录下。
  4. Git服务器的软链接存放在 /data/repo
  5. 日志文件存放在 /mnt 目录下。
  6. 使用Tengine作为Web服务器,并将Nginx配置文件存放在 /data/www/tengine

步骤详解

  1. 创建目录结构

    sudo mkdir -p /data/mongodb /data/redis /data/www /data/repo /mnt
    
  2. 挂载第二块EBS 假设第二块EBS设备名为 /dev/xvdf

    sudo mkfs -t ext4 /dev/xvdf
    sudo mount /dev/xvdf /data
    
  3. 安装必要的软件 安装编译环境、Git、SSH、Python等:

    sudo apt-get update
    sudo apt-get install g++ curl libssl-dev make libpcre3 libpcre3-dev git-core openssh-server openssh-client python-setuptools
    
  4. 安装Node.js 下载并安装Node.js:

    cd /soft
    wget http://nodejs.org/dist/v0.10.22/node-v0.10.22.tar.gz
    tar zvxf node-v0.10.22.tar.gz
    cd node-v0.10.22
    ./configure
    make
    sudo make install
    
  5. 安装MongoDB 添加MongoDB的APT仓库并安装:

    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 mongodb-org
    
  6. 安装Redis 安装Redis服务器:

    sudo apt-get install redis-server
    
  7. 配置Tengine 安装Tengine并配置:

    sudo apt-get install tengine
    cd /data/www
    git clone https://github.com/Tengine/tengine.git
    ln -s /data/www/tengine /usr/local/nginx
    
  8. 安装Supervisor 使用Supervisor管理进程:

    sudo apt-get install supervisor
    sudo nano /etc/supervisor/conf.d/nginx.conf
    

    nginx.conf 中添加以下内容:

    [program:nginx]
    command=/usr/local/nginx/sbin/nginx
    autostart=true
    autorestart=true
    stderr_logfile=/var/log/nginx.err.log
    stdout_logfile=/var/log/nginx.out.log
    
  9. 配置Git服务器 安装Git并设置Git服务器:

    sudo apt-get install git
    sudo git init --bare /data/repo/sogego.com.git
    sudo git init --bare /data/repo/phoneqq.com.git
    

通过以上步骤,你就可以在一个EC2实例上搭建一个完整的Web应用平台,包括Node.js、Redis、MongoDB等,并使用Git进行版本控制,确保系统的稳定性和可维护性。


要在Ubuntu服务器上搭建一个使用Tengine作为Web服务器,并且管理Git仓库来部署Node.js、Redis和MongoDB的应用,可以按以下步骤进行:

1. 创建目录结构

sudo mkdir -p /data/mongodb /data/redis /data/dbs/mongodb /data/dbs/redisdb /data/www/sogego.com /data/www/phoneqq.com /data/repo /mnt/logs

2. 安装必要的软件

sudo apt-get update
sudo apt-get install g++ curl libssl-dev make libpcre3 libpcre3-dev git-core openssh-server openssh-client python-setuptools

3. 安装Node.js

cd /soft
wget http://nodejs.org/dist/v0.10.22/node-v0.10.22.tar.gz
tar zvxf node-v0.10.22.tar.gz
cd node-v0.10.22
./configure
make
sudo make install

4. 配置Tengine

将Tengine的配置文件指向/data/www/tengine/nginx.conf。首先创建软链接:

sudo ln -s /data/www/tengine/nginx.conf /usr/local/nginx/conf/nginx.conf

5. 安装并配置MongoDB

编辑MongoDB配置文件(通常位于/etc/mongodb.conf),设置数据目录为/data/mongodb

sudo mkdir -p /data/mongodb
sudo service mongodb start

6. 安装并配置Redis

编辑Redis配置文件(通常位于/etc/redis/redis.conf),设置数据目录为/data/redis

sudo mkdir -p /data/redis
sudo service redis-server start

7. 安装并配置Git服务器

使用Gitolite来管理Git仓库。

sudo apt-get install git-daemon-sysvinit
sudo adduser --system --shell /bin/bash --gecos 'git version control' --group --disabled-password --home /srv/git git
sudo su git
ssh-keygen -t rsa -C "gitolite-admin"
git clone git@github.com:example/gitolite-admin.git
cd gitolite-admin
# 添加新公钥并提交
git commit -am "Added new key"
git push origin master

8. 使用Supervisor管理服务

安装Supervisor并配置启动脚本。

sudo apt-get install supervisor

创建Supervisor配置文件(例如/etc/supervisor/conf.d/nodejs.conf):

[program:nodejs]
command=/usr/local/bin/node /data/www/sogego.com/app.js
directory=/data/www/sogego.com
autostart=true
autorestart=true
stderr_logfile=/mnt/logs/nodejs.err.log
stdout_logfile=/mnt/logs/nodejs.out.log

更新Supervisor配置并启动服务:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all

通过以上步骤,你可以搭建一个集成了Node.js、Redis、MongoDB的Web服务器,并且能够通过Git进行版本控制。

回到顶部