CentOS7重装之路-Node.js安装使用篇
上回我们在自己的 CentOS7 系统上安装了 PHP 并且让 PHP-FPM 与Web服务器 NGINX 相连。
这一回再说另外一个服务器端的编程语言—— Node.js。
作为前端的开发者,Node.js 可以说是需要掌握的语言。其本身就是 JavaScript,只是可以直接在服务器上运行罢了。
当然,也可以用于制作各类命令行小程序,以后再作介绍。
安装 Node.js
安装 Node.js 有很多种办法。
- 到官方网站下载
Binary版本 - 到官方网站下载
Source Code,然后再编译 - 使用
nvm之类的软件安装
考虑到前两种办法都比较麻烦,这里我比较推荐使用 nvm 安装 Node.js。
nvm 的项目:https://github.com/creationix/nvm/
步骤1. 安装 nvm
有 curl 的话,直接执行下面的命令就可以了。
1 | curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash |
不过,要注意这个脚本是有时效性的。如果 nvm 有新的版本,请到官网看看新的脚本的链接。、
还有要注意,一定要在 root 的角色下运行,不然请自觉 sudo。
安装好了就可以看到 => Close and reopen ... 字样。
此时,用一下 nvm --version 看一下安装好了没有。
如果没有,请执行一下 source ~/.bashrc。
步骤2. 安装 node.js
第一步是设置一下 Node.js 的镜像到 npm.taobao.org。
1 | export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node |
如果不这么做,就是直接下载官方的版本,下载速度很慢的。
第二步就是 nvm install --lts。
这里的意思就是安装最新的 Node.js 的 Long term Support 版本,相对来说比较稳定,适合生产环境。
安装好了就会说 Now using node vx.x.x (npm vx.x.x) 的信息。
第三步就是设置默认的 Node.js 版本。
1 | nvm alias default stable |
不这么做的话,重启服务器之后你会发现 node 用不了。设置这个就是让 nvm 默认 use 稳定版,也就是 lts。
步骤3. 试一下 Node.js
安装好了,就可以试一下新安装的 Node.js 啦~
执行命令 node -v 就可以看到现在使用的 Node.js 的版本号。
执行命令 npm -v 就可以看到现在使用的 NPM 的版本号。
步骤4. 安装 cnpm
因为原版的 npm 在国内安装东西是很慢的,要解决慢就一定要用镜像。
国内比较好的镜像就淘宝的 NPM 镜像。
为了方便使用镜像并且不影响原本的 npm,我们建议安装 cnpm 作为 npm 的代替。
cnpm 就是使用了淘宝的 NPM 镜像的 npm。
安装方法也很简单:
1 | npm install -g cnpm --registry=https://registry.npm.taobao.org |
只需要一步就可以安装好 cnpm。
运行 cnpm -v 可以看到安装好了的 cnpm 的版本。
使用 Node.js
运行 Node.js
因为 Node.js 是运行一个Web服务器。所以它本身就已经有自己的端口了。
好比说我的这个 express 的项目,端口设置到 :4399。
使用 node app.js 之类的手段让 Node.js 服务器运行起来。
那么访问 http://127.0.0.1:4399 就可以上你的网站了。
NGINX 反向代理
但是,我想访问特定域名的 :80 端口就可以访问网站。怎么办?
这个时候就是 NGINX 反向代理登场的时候。
对于网站的访客,只需要知道你的域名就可以访问到你的 Node.js 服务器。
NGINX 反向代理就是把用户对你的 :80 端口的通信转发到你的内部端口,如 :4399。
那应该在 NGINX 里面怎么操作呢?
假设我的网站是 haha.com,Node.js 服务器端口为 :4001。
在 NGINX 的配置文件中加入:
1 |
|
用 nginx -s reload 重新加载一下配置就可以啦~
你也可以选择在 server 下多加一句 proxy_hide_header X-Powered-By;
这样就可以防止 express 的版本号泄露出来咯~
是不是很简单?
下一节介绍怎么在 CentOS7 下获取 Let's Encrypt 的免费证书来搭建 HTTPS 服务器。
除非注明,麦麦小家文章均为原创,转载请以链接形式标明本文地址。