腾讯云(ubuntu)下安装nodejs+实现nginx反向代理

VaJoy技术博客      2022-02-07     288

关键词:

本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理。

笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑,可以按本文的步骤进行安装部署。

一. 新版 nodejs 安装

这里强烈推荐使用 nvm (Node版本管理器),其它方式的安装或多或少都有些问题。

具体步骤如下:

1. 通过 git 指令下载nvm

执行指令如下,我们把nvm下载到 /root/git/ 中去(记得要先安装 git)

[root@VM-22-180-ubuntu~]#pwd
/root
[root@VM-22-180-ubuntu~]#mkdir git
[root@VM-22-180-ubuntu~]#cd git
[root@VM-22-180-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.8.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-22-180-ubuntu~]#cd
[root@VM-22-180-ubuntu~]#pwd
/root
[root@VM-22-180-ubuntu~]#wget http://nginx.org/download/nginx-1.10.2.tar.gz

然后解压此压缩包,并进入到文件夹 /nginx-1.10.2 去:

[root@VM-22-180-ubuntu~]#tar -xzvf nginx-1.10.2.tar.gz
[root@VM-22-180-ubuntu~]#cd nginx-1.10.2

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跑起来的页面内容了:

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

腾讯云ubuntu20.04配置jupyternotebook(代码片段)

首先点名表扬下腾讯云,镜像源使用的都是自己的,下载速度快到飞起首先安装sudoapt-getinstalljupyternotebook,注意不要使用pip3安装不然打不开提示jupyternotfound生成配置文件jupyternotebook--generate-config,并输入jupyternotebo... 查看详情

腾讯云搭建hexo博客

腾讯云搭建hexo博客hexo腾讯云1.腾讯云学生认证购买重置密码和网络备案2.hexo博客搭建2.1Node.js环境准备2.2安装git2.3安装hexo切换淘宝源安装hexo新建一个博客文件夹并初始化启动2.4nginx部署2.4域名DNS配置3.本地搭建hexo,git推送到腾讯... 查看详情

esp保姆级教程疯狂node.js服务器篇——nodejs应用部署到腾讯云,实现公网访问

忘记过去,超越自己❤️博客主页单片机菜鸟哥,一个野生非专业硬件IOT爱好者❤️❤️本篇创建记录2022-08-10❤️❤️本篇更新记录2022-08-10❤️ 查看详情

在ubuntu下安装crosstool-ng时配置环境变量之后每次打开termimnal就出

在Ubuntu下安装crosstool-NG时配置环境变量之后每次打开termimnal就出现commandnotfound该怎么解决参考技术A信息不够 查看详情

腾讯云服务器安装jdk与tomcat(ubuntu)

##腾讯云服务器安装JDK与tomcat关于文件无法创建或者传输的问题:首先在命令行中进入root模式,输入    sudosu然后输入你的账户密码,进入root模式。在对于你想操作文件进行权限设置。在命令行中输入   ... 查看详情

ubuntu下使用nvm安装nodejs

sudoapt-getinstallcurlcurl-o-https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh|bash(写这篇文章的时候nvm的版本是0.33.6)重启终端nvminstallnode这样就可以安装好nodejs了 查看详情

在ubuntu16.04下安装nodejs

源安装:1.curl-sLhttps://deb.nodesource.com/setup_5.x|sudo-Ebash- 2.sudoapt-getinstall-ynodejs使用命令安装看到此图,安装成功!使用node-v查看弄的js版本号   查看详情

ubuntu下安装nodejs以及pm2

 ubuntu12.04服务器可以使用apt-get方式安装NodeJS,但是,安装完后的版本为v0.6.12的版本,如果我们想要使用新一点的版本需要做如下配置: 1234apt-getinstallpython-software-propertiesapt-add-repositoryppa:chris-lea/node.jsapt-getupdateapt-getinsta 查看详情

优雅地乱玩linux-3-ubuntu下nodejs的安装

文章最初发表于szhshp的第三边境研究所转载请注明Ubuntu16.04安装NodeJS天哪Linux安装NodeJS居然也这么麻烦NodeJS安装curl-sLhttps://deb.nodesource.com/setup_6.x|sudo-Ebash-sudoapt-getinstall-ynodejs可能会出现找不到 curl的错误, apt-get一下curl就可... 查看详情

从教务网爬虫程序到腾讯云上的运行

从教务网爬虫程序到腾讯云上的运行主要内容有以下几方面:pip3以及相关python包的安装mysql数据库的连接以及相关操作腾讯云服务器的设置与连接,文件传输等操作pip3以及相关python包的安装在使用python3时,需要安装对应的pip版... 查看详情

腾讯云使用

1,安装ubuntu系统2,安装桌面1sudoapt-getinstallxinit2sudoapt-getinstallgdm3sudoapt-getinstallubuntu-desktop   查看详情

腾讯云主机ubuntu搭建jdk

...http://www.cnblogs.com/ygj0930/p/6377878.html   在购买了腾讯云ubuntu主机后,需要手动搭建java环境、安装tomcat等。ubuntu是命令行操作系统,搭建比较麻烦,这里我把自己搭建jdk的过程摘录下来,供后来者参考。   一... 查看详情

腾讯云配置安装node

偶然间看到腾讯云的学生认证很便宜,就买了个云服务器系统centos764位想试下运行node项目 安装nodejsyuminstallepel-releaseyuminstallnodejsyuminstallnpm可以了,不得不说yum真的很方便 安装mongodb参考 在CentOS中使用yum安装MongoDB及服... 查看详情

ubuntu16.04下安装配置nodejs及npm(代码片段)

官网下载ubuntu对应的二进制文件(LinuxBinaries(x64)这一行)https://nodejs.org/en/download/解压并安装```$tarzxvfnode-v0.10.24.tar.gz#解压后进入对应目录$sudochmod-R755node$sudo./configure$sudomake$sudomakeinstall```大功告成```$node-v$npm- 查看详情

腾讯云cos挂载到本地

环境安装Ubuntu系统下安装环境依赖包方法:sudoapt-getinstallautomakeautotools-devg++gitlibcurl4-gnutls-devlibfuse-devlibssl-devlibxml2-devmakepkg-configfuseCentOS系统下安装环境依赖包方法:sudoyuminstallautomakegcc-c++gitlibcurl-devellibxml2-develfuse-develmakeopenssl-deve... 查看详情

阿里云ubuntu16.04系统下安装nginx

阿里云Ubuntu16.04系统下安装Nginx 查看详情

ubuntu安装nodejs

在ubuntu上安装nodejs步骤1:升级系统用以下命令来升级系统,并且安装一些Node.js的必要的包。[email protected]:~#apt-getupdate[email protected]:~#apt-getinstallpythongccmakeg++步骤2:获取Node.JS的源代码安装好依赖包之后我们可以从官方网... 查看详情

ubuntu下nodejs环境搭建

 #0.0.0.0account.jetbrains.com”添加到hosts文件中 apt-get升级 sudoapt-getupgradeapt-get更新 sudoapt-getupdate安装nodesudoapt-getinstallnodejssudoapt-getinstallnodejs-legacy安装npmsudoapt-ge 查看详情