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

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

以前发过两个topic如下: 技术交流加入QQ群:261654896

使用git管理nodejs+socket.io+redis+mongoose+mongodb+bootstarp+juicer+waterfall+nginx+ubuntu+aws ec2开发sogego.com网站

微信可以上墙入地 微信墙 微信地图 微信聊天室 设计与展示

经过一年多在aws ec2上的倒腾,用nodejs,mongodb,redis,nginx配置网站开发过程中遇到的问题与技巧,今天和以后打算抽出点时间来记录下了,本文算是一个目录吧!

这个topic的题目想了好久终于出来了。但每个部分又是相关连的,比如说ec2 instance的选型,直接关系到程序开发中mongodb的快速读写,Tengine和redis和mongodb的log日志又影响到ec2上EBS的IO操作,事关你的费用如何降低,这里没有提到其它的云服务器,比如阿里云,盛大云,微软云,还有德国战车SAP将要与中国电信联手的云,事实上aws云价格在那,服务在那,国内的小云云那都不是一个层面上的东东,前些日子去听aws在中国的group时,还收到了$50的优惠券,经过比较阿里云,最后还是选择使用aws。

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

希望大家看到题目能够激发创业的激情,并希望在技术角度help到每个哭B的叼丝。

暂定内容如下:

开头吐槽、我想搞个网站容易,赚点小钱可不容易 (每天写一点)

网站域名抢注、购买、备案,如何选服务器

一、在AWS EC2上创建你的云服务器 (已完成,已发布,可以转载)

AWS EC2上创建instance,如何选型,以及在instance stroage,EBS,VPC,保留实例,IO操作,S3存储

二、对EC2上的EBS分区 (已完成,已发布,可以转载)

AWS EC2不同与阿里云的,图解说明EBS分区。

三、在EC2上安装nodejs (已完成,已发布,可以转载)

讲讲我们使用aws ec2的程序安装目录、数据库安装目录、git服务器、supervisor管理的最终目的。

四、在EC2上安装mongodb并配置创建用户和安装redis数据库 (已发布,已完成,可以转载)

五、如何用Supervisor来监听redis、mongodb、nodejs、nginx服务 (已发布,已完成,可以转载)

六、安装配置Tengine(已发布,更新中)放弃nginx来使用它

讲讲nginx的超集,taobao,aliyun等正在使用的,对nginx进行加模块的服务器Tengine, 如何配置搜个够(sogego.com)和手机扣扣(phoneqq.com),并打算使用lua语言,在Tengine上直接操作redis数据库

七、在EC2上安装配置Git,做为Git服务器,创建phoneqq.com和sogego.com及bugsky.com版本库 (已发布,已完成,可以转载)

实现在本机用win7在webstorm中开发,直接commit到网站目录下,不再使用ftp或是sftp

八、讲Nodejs开发中,如何使用express,socket.io,bootstrap,redis,mongodb

针对nodejs开发的高级篇,使用mongoose来开发mongodb

九、细讲phoneqq.com微信上墙,微信公众服务平台开发

十、细讲sogego.com搜个够,使用nodejs写的爬虫,爬新闻,时实发到新浪微博,最后获得广告联盟佣金


12 回复

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

开头吐槽、我想搞个网站容易,赚点小钱可不容易

开发一个网站不仅仅是编写代码这么简单。从选择域名到服务器,从部署应用到监控性能,每一个环节都需要仔细考虑。本文将分享如何在AWS EC2上搭建一个完整的环境,包括NodeJS、MongoDB、Redis等组件。

网站域名抢注、购买、备案,如何选服务器

  • 域名:选择一个合适的域名是第一步。可以使用阿里云或AWS Route 53进行域名注册。
  • 服务器:AWS EC2提供了多种实例类型。对于大多数Web应用,t2.micro是一个不错的选择,因为它提供免费套餐。

在EC2上安装NodeJS

首先,我们需要在Ubuntu上安装NodeJS。可以通过以下命令完成:

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm

安装MongoDB和Redis

安装MongoDB和Redis也是必要的步骤。以下是安装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

安装Redis:

sudo apt-get install redis-server

使用Supervisor管理服务

Supervisor可以帮助我们更好地管理后台服务。首先安装Supervisor:

sudo apt-get install supervisor

然后编辑Supervisor配置文件,例如创建一个NodeJS服务:

[program:nodejs]
command=/usr/bin/nodejs /path/to/app.js
directory=/path/to/app
autostart=true
autorestart=true
stderr_logfile=/var/log/nodejs.err.log
stdout_logfile=/var/log/nodejs.out.log

保存后运行:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start nodejs

安装配置Tengine

Tengine是Nginx的一个分支,由阿里巴巴贡献。安装Tengine:

sudo apt-get update
sudo apt-get install tengine

配置Tengine以反向代理NodeJS应用:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

在EC2上安装配置Git

Git服务器可以方便地管理代码版本。安装Git:

sudo apt-get install git

创建Git仓库:

cd /opt/git
mkdir phoneqq.git
cd phoneqq.git
git --bare init

NodeJS开发中的高级篇

使用Express框架简化Web开发:

npm install express

使用Socket.IO实现实时通信:

npm install socket.io

总结

通过上述步骤,你可以在AWS EC2上搭建一个功能完备的网站,包含NodeJS、MongoDB、Redis等组件。希望这些内容能帮助你在技术道路上更进一步。


本文仅作为初步指南,具体实施时需要根据实际需求进行调整。


我顶一个目录

终于完成了:在AWS EC2上创建你的云服务器 这一章

第二章与第三章也写完了

aws 的中国region,马上就可以使用了,大家坚持到明年初,1月份,就可以在中国用上aws服务了 第三,第四也写完了。

aws ec2 的服务器怎么购买,好象在国内进不去。

看下~! ~

现在你的http://sogego.com是挂在amazon的aws上的吗,你的这个网站进倒是可以进去,但点搜索以后,一直在loading。。。

在这个帖子中,作者计划详细讲解如何在AWS EC2上搭建一个完整的Web应用环境,使用Ubuntu系统,通过Tengine服务器管理Git,部署Node.js、Redis和MongoDB等组件。以下是各个步骤的具体实现方式,附带了一些关键代码片段。

1. 在AWS EC2上创建云服务器

  • 步骤:
    • 登录AWS管理控制台,选择EC2服务。
    • 创建一个新的EC2实例,选择Ubuntu作为操作系统。
    • 配置安全组以允许HTTP、HTTPS和SSH端口访问。
# 安装必要的软件包
sudo apt-get update
sudo apt-get install git curl

2. 安装Node.js

  • 步骤:
    • 使用NodeSource PPA安装Node.js。
    • 验证Node.js和npm的安装。
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
npm -v

3. 安装MongoDB和Redis

  • 步骤:
    • 添加MongoDB官方APT仓库并安装MongoDB。
    • 安装Redis并启动服务。
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org

sudo apt install redis-server

4. 配置Supervisor管理服务

  • 步骤:
    • 安装Supervisor。
    • 配置文件用于管理Node.js、MongoDB和Redis。
; supervisor配置文件示例
[program:node]
command=node /path/to/app.js
directory=/path/to/app
autostart=true
autorestart=true
stderr_logfile=/var/log/node.err.log
stdout_logfile=/var/log/node.out.log

5. 配置Tengine服务器

  • 步骤:
    • 下载并编译Tengine。
    • 配置反向代理和负载均衡规则。
# Tengine配置示例
server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

6. Git服务器设置

  • 步骤:
    • 安装Git。
    • 配置Git服务器和用户权限。
sudo apt-get install git
git config --global user.name "Your Name"
git config --global user.email you@example.com

通过这些步骤,你可以构建一个完整的Node.js应用环境,并且利用AWS EC2的强大功能和高可靠性。

回到顶部