首頁 > 運維 > Nginx > ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法

ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法

王林
發布: 2023-05-17 09:13:05
轉載
1561 人瀏覽過

一. 新版 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
登入後複製

來搜尋並取得結果:

ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法
然後透過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就裝在伺服器上了:ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法
二. 安裝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.36.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.36.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 編譯過程報錯:

ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法#推薦使用上方程式碼片段提供的 pcre-8.36 版本。

留意下,如果在終端下載的速度太慢了,推薦用迅雷下載在本地後,再透過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.36 --with-zlib=/home/ubuntu/zlib-1.2.8 --with-openssl=/home/ubuntu/openssl-1.1.0c

#make

#make install
登入後複製

它們的作用分別是:產生c源碼檔案和makefile檔案、產生二進位檔案、將nginx安裝到指定目錄(/home/ubuntu/nginx)。

注意 ./configure 指令後的參數分別指定了 nginx 的安裝目錄及相關依賴模組位址。

三. 啟動nginx

執行

#/home/ubuntu/nginx/sbin/nginx
登入後複製

可直接啟動nginx 服務,這時候在任何地方執行:

wget http://127.0.0.1
登入後複製

都可以下載到一份index.html:

ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法這時候我們直接存取雲端主機公網ip 位址,就能直接看到該預設頁面:
ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法
注意! 如果這時無法透過公網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 」的輸出:

ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法然後咱們把這個檔案放到雲端主機去。

鑑於我已經掛到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”,我们这样编辑它(加上红框部分的代码):ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法
这意味着当有请求路径为“/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跑起来的页面内容了:
ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法

以上是ubuntu下安裝nodejs並實作Nginx反向代理伺服器的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板