[实战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
[实战AWS EC2]三、基于Ubuntu,Tengine服务器构建Git管理Nodejs,Redis,MongoDB的网站
技术交流加入QQ群:261654896
实战AWS EC2文章目录
在前两章中,我们已经讨论了如何选择AWS EC2实例以及如何登录到EC2实例。接下来我们将详细讲解如何在Ubuntu上搭建一个完整的Web应用平台,包括Node.js、Redis、MongoDB等。
目标概述
我们的目标是在EC2实例上搭建一个高效且易于管理的Web应用平台。具体步骤如下:
- 创建
/data
目录,并将第二块EBS挂载到该目录。 - 将MongoDB和Redis的数据文件分别存放在
/data/mongodb
和/data/redis
。 - 程序文件存放在
/data/www
目录下。 - Git服务器的软链接存放在
/data/repo
。 - 日志文件存放在
/mnt
目录下。 - 使用Tengine作为Web服务器,并将Nginx配置文件存放在
/data/www/tengine
。
步骤详解
-
创建目录结构
sudo mkdir -p /data/mongodb /data/redis /data/www /data/repo /mnt
-
挂载第二块EBS 假设第二块EBS设备名为
/dev/xvdf
:sudo mkfs -t ext4 /dev/xvdf sudo mount /dev/xvdf /data
-
安装必要的软件 安装编译环境、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
-
安装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
-
安装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
-
安装Redis 安装Redis服务器:
sudo apt-get install redis-server
-
配置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
-
安装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
-
配置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进行版本控制。