主机格调

最近在学习用Express来做简单的网站,Express是Node.js的一个常用框架,MongoDB是对Node.js支持很好的数据库。所以最终做的网站想要在服务器里运行,就必须在服务器里装Node.js+MongoDB环境。我手头有一个闲置的VPS,所以就用这个练练手了。

背景介绍,我的VPS系统为CentOS 6.8。

1、安装Node.js

这里我是用nvm来管理Node.js的,所以先装nvm。从nvm官网可以看到安装命令:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

当然,0.33.0是目前最新版,大家装的时候有可能版本更新。安装完毕后,会提示你退出再登录,就好了。输入nvm --version查看版本号,就可以检查安装是否正确。更多nvm命令见官网。

目前Node.js最新稳定版为6.9.4,输入nvm install v6.9.4即可安装这个版本。输入node -v查看版本号,就可以检查安装是否正确。

因为我是直接把做的Express网站上传到了GitHub上,所以还需要安装Git。

大部分Linux都自带Git,输入yum list git查看,如果有,输入yum update git更新一下就好了。输入git --version查看版本号,我的是1.7.1,够用了。

在VPS里找个合适的目录,就可以clone你的Git项目了。

此时VPS里有Node.js项目还不够,还要他一直能开着,就需要常驻在进程里。我选择的是PM2,因为装了Node.js,自带npm,输入npm install pm2 -g即可安装。如果看不懂英文,这篇文章里介绍得很详细。装好pm2后,输入pm2 start ./bin/www --name myApp即可。./bin/www是Express默认启动文件。

2、安装MongoDB

MongoDB官网提供安装教程,简单的来说,首先在/etc/yum.repos.d/目录下创建一个文件mongodb-org-3.4.repo,编辑此文件,输入以下代码,保存。

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

输入yum install -y mongodb-org,就自动安装了。

文章里提到,默认数据库路径/var/lib/mongo,默认日志路径/var/log/mongodb,默认端口27017,这些我们都不用管。

直接让数据库常住后台,输入mongod --fork --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log —logappend

此时我们输入VPS的IP加网站端口号,即可访问网站。

3、安装Nginx

上面两步虽然可以访问网站,但端口号始终不方便,这个时候就需要Nginx来代理端口号了。

因为Nginx需要依赖一堆东西,所以先装依赖

yum install -y epel-*
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

装完后,输入yum install nginx自动安装Nginx。启动Nginx:service nginx start。然后编辑配置文件/etc/nginx/conf.d/default.conf

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name myApp;
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    location / {
        proxy_pass http://localhost:3100;
    }
    error_page 404 /404.html;
        location = /40x.html {
    }
    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

这里我就是把原来的root删掉了,location里加了个代理proxy_pass http://localhost:3100;就搞定了(3100端口是我Express网站的端口)。此时访问IP,即可访问你的网站了。

如果你有域名,把域名A记录解析到IP上,即可通过域名访问你的网站。

>>原创文章,欢迎转载。转载请注明:转载自西门的后花园,谢谢!
>>原文链接地址:http://ons.me/563.html