腾讯云下安装 nodejs + 实现 Nginx 反向代理
本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理。
笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑,可以按本文的步骤进行安装部署。

一. 新版 nodejs 安装
这里强烈推荐使用 nvm (Node版本管理器),其它方式的安装或多或少都有些问题。
具体步骤如下:
1. 通过 git 指令下载nvm
执行指令如下,我们把nvm下载到 /root/git/ 中去(记得要先安装 git):
[root@VM---ubuntu~]#pwd
/root
[root@VM---ubuntu~]#mkdir git
[root@VM---ubuntu~]#cd git
[root@VM---ubuntu~]#git clone https://github.com/creationix/nvm.git
2. 配置环境变量
这里是要修改 .bashrc 文件,如果不清楚其位置,可以回到根目录执行
#find . -name "*.bashrc" -print
来搜索和获取结果:

然后通过 vim 修改 ./etc/skel/.bashrc 文件,在文件开头加入下面两行:
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
source /git/nvm/nvm.sh
其中第一行是修改nvm镜像路径到阿里,第二行才是把 nvm 添加到系统环境中去。
保存后执行指令让配置生效(或者重启服务器):
#source .bashrc
3. 直接用nvm安装nodejs
执行指令
#nvm install node
便可安装新版本的nodejs,安装成功后,最新版的node就装在服务器上了:


二. 安装 nginx
这里和node一样不推荐使用 apt-get/aptitude 形式安装,建议走源码编译安装。
1. 依赖安装和下载
确保安装了 gcc-c++ 和 libpcre3-dev:
#aptitude install gcc-c++ libpcre3-dev
然后咱定位到 /home/ubuntu 去下载一些依赖包,并解压缩到该文件夹下:
#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
#wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz
#wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz #tar -xzvf pcre-8.38.tar.gz
#tar -xzvf zlib-1.2..tar.gz
#tar -xzvf openssl-1.1.0c.tar.gz
这里咱们下载的是 nginx 模块所依赖的 pcre/zlib/openssl,压缩包的下载地址都是在它们对应官网中找到的。
需要留意的点是,pcre 不要下载使用 pcre2 的,否则会导致 nginx 编译过程报错:

推荐使用上方代码段提供的 pcre-8.38 版本。
留意下,如果在终端下载的速度太慢了,推荐用迅雷下载在本地后,再通过 FileZilla 把文件同步到云主机上去,百试不爽~
2. 下载和解压 nginx
先到nginx官网找最新的源码包下载路径(截止本文时间,稳定版是 http://nginx.org/download/nginx-1.10.2.tar.gz),然后下载下来(我个人是下载到 /root 路径下):
[root@VM---ubuntu~]#cd
[root@VM---ubuntu~]#pwd
/root
[root@VM---ubuntu~]#wget http://nginx.org/download/nginx-1.10.2.tar.gz
然后解压此压缩包,并进入到文件夹 /nginx-1.10.2 去:
[root@VM---ubuntu~]#tar -xzvf nginx-1.10..tar.gz
[root@VM---ubuntu~]#cd nginx-1.10.
3. 编译和安装
按顺序执行如下三条指令:
#./configure --prefix=/home/ubuntu/nginx --with-pcre=/home/ubuntu/pcre-8.38 --with-zlib=/home/ubuntu/zlib-1.2.8 --with-openssl=/home/ubuntu/openssl-1.1.0c --with-http_ssl_module #make #make install
它们的作用分别是:生成C源码文件和Makefile文件、生成二进制文件、将nginx安装到指定目录(/home/ubuntu/nginx)。
注意 ./configure 指令后的参数分别指定了 nginx 的安装目录及相关依赖模块地址。
自此,nginx 就安装完毕啦~

三. 启动 nginx
执行
#/home/ubuntu/nginx/sbin/nginx
可直接启动 nginx 服务,这时候在任意地方执行:
wget http://127.0.0.1
都可以下载到一份 index.html:

这时候我们直接访问云主机公网 ip 地址,就能直接看到该默认页面:

注意!如果这时无法通过公网ip访问页面,请确保云主机所处的安全组是允许所有端口访问的。

四. 执行一个node服务,并通过 nginx 配置实现反向代理
这里我们简单实现一个 node 页面,监听3000端口。
我们在本地先写一个 index.js 文件来耍一耍:
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(3000, () => {
console.log(`node server is now running/`);
});
执行 node index 的话,访问 http://localhost:3000/ 会有“Hello World”的输出:

然后咱们把这个文件放到云主机去。
鉴于我已经挂到 github上,读者们可以直接通过如下指令来下载该文件:
#git clone https://github.com/VaJoy/node-test.git
p.s. 我个人下载到了“/root/node-project/”文件夹下,要执行node的话指令为:
#node /root/node-project/node-test/cp1/index

OK,咱们接着先修改 nginx 配置。如果你忘了 nginx 的配置在哪里,可以执行这条指令来确定:
#/home/ubuntu/nginx/sbin/nginx -t
本文的nginx是安装在 /home/ubuntu 下的,所以其配置文件路径是“/home/ubuntu/nginx/conf/nginx.conf”,我们这样编辑它(加上红框部分的代码):

这意味着当有请求路径为“/hello”时,nginx 会将请求代理到服务器的3000端口去(即node监听的端口)。

五. 重启 nginx 和 node
到这一步的时候别忘了两点 —— 1. 咱们修改 nginx 配置后还没重启nginx服务;2. 咱们还没有在云主机上跑node服务(上文仅仅是在本地电脑上跑了一次)。
所以我们分别执行如下指令(重启nginx+跑node):
#/home/ubuntu/nginx/sbin/nginx -s reload #node /root/node-project/node-test/cp1/index
这时候直接访问 http://公网ip/hello,就能直接看到node跑起来的页面内容了:

本文送给使用腾讯云的前端童鞋,若操作过程遇到问题欢迎留言咨询。共勉~

腾讯云下安装 nodejs + 实现 Nginx 反向代理的更多相关文章
- Server 主机屋云服务器 宝塔面板 部署nginx反向代理的vue项目
图文记录云服务器上部署需要nginx反向代理的vue项目: 一.先登录并购买云服务器,根据自己需求购买,此处不详细介绍: 二.登录后如下图,点击进入云服务器界面: 三.在云服务器界面点击管理,进入管理 ...
- Linux腾讯云下安装mysql
百度云盘下载地址https://pan.baidu.com/s/1MqUEdeqZuQbq-veLuVItQQ 将下载好的mysql-5.7.14-linux-glibc2.5-x86_64.tar. ...
- CentOS安装、配置Nginx反向代理
添加Nginx存储库 sudo yum install epel-release 安装Nginx sudo yum install nginx 启动Nginx sudo systemctl start ...
- CentOS 安装、配置Nginx反向代理
安装: yum install epel-release yum install nginx 配置: [root@bogon ~]# vim /etc/nginx/conf.d/default.con ...
- Linux(Ubuntu)下安装NodeJs
用以下命令来升级系统,并且安装一些Node.JS必要的包. Linux(Ubuntu)下安装NodeJs 安装nodeJS之前,如果没有安装g++ make libssl-dev等, 1.更新系统和依 ...
- Angularjs学习---angularjs环境搭建,ubuntu 12.04下安装nodejs、npm和karma
1.下载angularjs 进入其官网下载:https://angularjs.org/,建议下载最新版的:https://ajax.googleapis.com/ajax/libs/angular ...
- (转)windows下安装nodejs及框架express
转自:http://jingyan.baidu.com/article/456c463b60fb380a583144a9.html windows下安装nodejs及框架express nodejs从 ...
- Windows7 x64 系统下安装 Nodejs 并在 WebStorm 9.0.1 下搭建编译 LESS 环境
1. 打开Nodejs官网http://www.nodejs.org/,点“DOWNLOADS”,点64-bit下载“node-v0.10.33-x64.msi”. 2. 下载好后,双击“node-v ...
- ubuntu下安装nodejs
前言 继前几天在wins环境下使用cygwin模拟器安装nodejs出现了一些问题后,今天我决定在ubuntu下安装nodejs,安装过程非常顺利,没有报错,看来还是linux环境给力啊,由于刚接触l ...
随机推荐
- NiceMark——我的Markdown编辑器
NiceMark--我的Markdown编辑器 闲来无事,写了一个Markdown编辑器.基于electron,完全采用Web前段技术(Html,css,JavaScript)实现.代码已托管在Git ...
- C# 利用性能计数器监控网络状态
本例是利用C#中的性能计数器(PerformanceCounter)监控网络的状态.并能够直观的展现出来 涉及到的知识点: PerformanceCounter,表示 Windows NT 性能计数器 ...
- iOS逆向工程之Theos
如果你对iOS逆向工程有所了解,那么你对Tweak并不陌生.那么由Tweak我们又会引出Theos, 那么什么是Theos呢,简单一句话,Theos是一个越狱开发工具包,Theos是越狱开发工具的首先 ...
- node模块加载层级优化
模块加载痛点 大家也或多或少的了解node模块的加载机制,最为粗浅的表述就是依次从当前目录向上级查询node_modules目录,若发现依赖则加载.但是随着应用规模的加大,目录层级越来越深,若是在某个 ...
- 七牛云:ckeditor JS SDK 结合 C#实现多图片上传。
成功了,搞了2天.分享一下经验. 首先是把官方的那个例子下载下来,然后照如下的方式修改. 其中tempValue是一个全局变量. function savetoqiniu() { var upload ...
- JavaScript中事件处理
先看看下面一道题目,请评价以下代码并给出改进意见: if (window.addEventListener) {//标准浏览器 var addListener = function(el, type, ...
- vscode 1.5安装体验
1.下载安装 官方下载地址: http://code.visualstudio.com/ 界面截图: 2.图标显示功能File Icon Themes vscode1.5版本文件夹视图,可显示文件类型 ...
- 登录(ajax提交数据和后台校验)
1.前台ajax数据提交 <form id="login_form" action="" method="POST"> < ...
- 多线程同步工具——Lock
本文原创,转载请注明出处. 参考文章: <"JUC锁"03之 公平锁(一)> <"JUC锁"03之 公平锁(二)> 锁分独占锁与共享锁, ...
- 总结iOS开发中的断点续传那些事儿
前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...