加载中…

加载中...

express+nodejs+redis+mongodb+pm2+nginx环境部署安装,生产环境及开发环境部署

转载 2016-12-21 18:17:09
标签:it

小编最近需要上线一个nodejs网站应用,没想到却遇到了很多困难,所以把安装环境的步骤都记录下来,以作备用。

本人用的是UBUNTU系统,在干所有事情之前,请相信我,先安装一个编译包,这样后面可以避免很多错误。

安装编译包:

sudo apt-get install build-essential


nodejs安装:

osx, linux 环境.

git clone nvm直接从 github clone nvm 到本地, 这里假设大家都使用 ~/git 目录存放 git 项目:

$ cd ~/git

$ git clone https://github.com/cnpm/nvm.git

配置终端启动时自动执行 source ~/git/nvm/nvm.sh, 在 ~/.bashrc, ~/.bash_profile, ~/.profile, 或者 ~/.zshrc 文件添加以下命令:

source ~/git/nvm/nvm.sh

重新打开你的终端, 输入 nvm

$ nvm
 
Node Version Manager
 
Usage:
    nvm help                    Show this message
    nvm --version               Print out the latest released version of nvm
    nvm install [-s]   Download and install a , [-s] from source
    nvm uninstall      Uninstall a version
    nvm use            Modify PATH to use 
    nvm run  []  Run  with  as arguments
    nvm current                 Display currently activated version
    nvm ls                      List installed versions
    nvm ls             List versions matching a given description
    nvm ls-remote               List remote versions available for install
    nvm deactivate              Undo effects of NVM on current shell
    nvm alias []       Show all aliases beginning with 
    nvm alias    Set an alias named  pointing to 
    nvm unalias           Deletes the alias named 
    nvm copy-packages  Install global NPM packages contained in  to current version
 
Example:
    nvm install v0.10.24        Install a specific version number
    nvm use 0.10                Use the latest available 0.10.x release
    nvm run 0.10.24 myApp.js    Run myApp.js using node v0.10.24
    nvm alias default 0.10.24   Set default node version on a shell
 
Note:
    to remove, delete or uninstall nvm - just remove ~/.nvm, ~/.npm and ~/.bower folders


通过 nvm 安装任意版本的 node,通过https://nodejs.org/en/,可以看到当前的稳定版本,截至写这篇文章,nodejs的稳定版本为V4.6.0

$ nvm install 4.6.0

于是你就会看到一段非常快速进度条:

######################################################################## 100.0%

Now using node v4.6.0

最后设置默认版本:

nvm alias default v4.6.0


安装expressjs

npm install express -gd

npm install -gd express-generator

安装mongodb,版本以3.2为例

第一步:导入public Key

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927


第二步:创建mongodb列表文件

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list


第三步:重载本地包数据库

sudo apt-get update


第四步:安装MongoDB包

sudo apt-get install -y mongodb-org


mongodb安装设置,以及后台服务启动

第一步:根目录新建对应文件夹,然后默认启动,--fork为后台服务启动。

mongod --dbpath /data/db --fork --logpath /data/log/mongodb.log


注意:默认安装mongod,会自动默认启动mongodb,使用的默认数据库路径为:/var/lib/mongodb,默认日志路径为:/var/log/mongodb。本人使用以上命令启动的时候出现一个错误:about to fork child process, waiting until server is ready for connections.这个可以删除/var/liv/mongodb中的mongod.lock文件解决。

第二步:增加用户


use admin use cnodejsng #此处为数据库名称 db.createUser({user:"cnodejs",pwd:"cnodejs.ng",roles:[{role:"readWrite",db:"cnodejsng"}]}) db.runCommand({usersInfo:"cnodejs",showPrivileges:true}) db.auth('cnodejs','cnodejs.ng')

第三步:关闭mongodb服务

$ sudo service mongod stop
$ ps -ef | grep mongo
root     17573 14213  0 05:10 pts/1    00:00:00 su - mongo
mongo    17574 17573  0 05:10 pts/1    00:00:00 -bash
mongo    18288     1  0 06:12 ?        00:00:00 mongod -f /database/mongodb/data/mongodb_27017.conf
mongo    18300 17574  6 06:13 pts/1    00:00:00 ps -ef
mongo    18301 17574  0 06:13 pts/1    00:00:00 grep mongo

$ kill 18288

第四步:重启mongodb服务器,限制授权和ip地址

mongod -auth --bind_ip 127.0.0.1 --port 27017 --dbpath /data/db --fork --logpath /data/log/mongodb.log


第五步:在mongoose里修改连接信息


mongoose = require('mongoose')
connectionString = 'mongodb://127.0.0.1:27017/cnodejs' options = db: native_parser: true server: auto_reconnect: true poolSize: 5 # replset: rs_name: 'myReplicaSetName' user: 'cnodejs' pass: 'cnodejs.ng'  mongoose.connect connectionString, options, (err, res) -> if err console.log('[mongoose log] Error connecting to: ' + connectionString + '. ' + err) process.exit 1 else console.log('[mongoose log] Successfully connected to: ' + connectionString) 
db = mongoose.connection
db.on('error', console.error.bind(console, 'mongoose connection error:'))
db.once 'open', () -> console.log('mongoose open success')



安装redis


wget http://download.redis.io/redis-stable.tar.gz

tar xvzf redis-stable.tar.gz

cd redis-stable

make 

sudo cp src/redis-server /usr/local/bin/

sudo cp src/redis-cli /usr/local/bin/

redis-server &


安装pm2

npm install -g pm2


运行express应用

pm2 start bin/www


重启自启动

pm2 startup


安装nginx及配置

$ sudo -s
$ nginx=stable # use nginx=development for latest development version
$ add-apt-repository ppa:nginx/$nginx
$ apt-get update

$ apt-get install nginx

安装之后,我们需要设置nginx配置文件,我们需要关注/etc/nginx文件夹中的sites-available 和 sites-enabled文件夹,我们来设置反向代理。进入sites-available文件夹创建default设置的副本,然后建立符号链接到sites-enabled文件夹。

$ cp default example.com


符号链接(symbolic links): 克服硬链接的局限性, 类似于快捷方式, 使用与硬链接相同.

如果先删除文件, 则会成为坏链接(broken), ls会以不同颜色(Ubuntu, 红色)显示;

操作: ln -s item link, 可以link文件和目录;

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com​

我们来进行配置文件example.com的修改,最终修改版如下:

server {  
  server_name your.domain.com;
  listen 80;
 
  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://127.0.0.1:3000;
    proxy_redirect off;
  }
}


最后重启nginx服务

/etc/init.d/nginx restart


阅读(0) 评论(0) 收藏(0) 转载(0) 举报
分享

评论

重要提示:警惕虚假中奖信息
0条评论展开
相关阅读
加载中,请稍后
鎭愭
  • 博客等级:
  • 博客积分:0
  • 博客访问:16,957
  • 关注人气:0
  • 荣誉徽章:

相关博文

新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有