最近在学习用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上,即可通过域名访问你的网站。
来访,支持支持
特意路过~~~
嗯嗯嗯
朋友 交换链接吗
支持楼主
学习学习
挺能尝试新东西,早在几年前就有人入了门,当时我还在想这是一个冷门东西。