天天看點

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

本文将介紹如何給騰訊雲上的 Ubuntu Server 12.04 LTS 64位主機安裝 node 及 nginx,并簡單配置反向代理。

筆者在整個安裝過程中遇到不少麻煩(不贅述),如果你希望少踩坑,可以按本文的步驟進行安裝部署。

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

一. 新版 nodejs 安裝

這裡強烈推薦使用 nvm (Node版本管理器),其它方式的安裝或多或少都有些問題。

具體步驟如下:

1. 通過 git 指令下載下傳nvm

執行指令如下,我們把nvm下載下傳到 /root/git/ 中去(記得要先安裝 git):

2. 配置環境變量

這裡是要修改 .bashrc 檔案,如果不清楚其位置,可以回到根目錄執行

來搜尋和擷取結果:

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

然後通過 vim 修改 ./etc/skel/.bashrc 檔案,在檔案開頭加入下面兩行:

其中第一行是修改nvm鏡像路徑到阿裡,第二行才是把 nvm 添加到系統環境中去。

儲存後執行指令讓配置生效(或者重新開機伺服器):

3. 直接用nvm安裝nodejs

執行指令

便可安裝新版本的nodejs,安裝成功後,最新版的node就裝在伺服器上了:

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理
騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

二. 安裝 nginx

這裡和node一樣不推薦使用 apt-get/aptitude 形式安裝,建議走源碼編譯安裝。

1. 依賴安裝和下載下傳

確定安裝了 gcc-c++  和 libpcre3-dev:

然後咱定位到 /home/ubuntu 去下載下傳一些依賴包,并解壓縮到該檔案夾下:

這裡咱們下載下傳的是 nginx 子產品所依賴的 pcre/zlib/openssl,壓縮包的下載下傳位址都是在它們對應官網中找到的。

需要留意的點是,pcre 不要下載下傳使用 pcre2 的,否則會導緻 nginx 編譯過程報錯:

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

推薦使用上方代碼段提供的 pcre-8.38 版本。

留意下,如果在終端下載下傳的速度太慢了,推薦用迅雷下載下傳在本地後,再通過 FileZilla 把檔案同步到雲主機上去,百試不爽~

2. 下載下傳和解壓 nginx 

先到nginx官網找最新的源碼包下載下傳路徑(截止本文時間,穩定版是 http://nginx.org/download/nginx-1.10.2.tar.gz),然後下載下傳下來(我個人是下載下傳到 /root 路徑下):

然後解壓此壓縮包,并進入到檔案夾 /nginx-1.10.2 去:

3. 編譯和安裝

按順序執行如下三條指令:

它們的作用分别是:生成C源碼檔案和Makefile檔案、生成二進制檔案、将nginx安裝到指定目錄(/home/ubuntu/nginx)。

注意 ./configure 指令後的參數分别指定了 nginx 的安裝目錄及相關依賴子產品位址。

自此,nginx 就安裝完畢啦~

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

三. 啟動 nginx

執行 

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

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

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

這時候我們直接通路雲主機公網 ip 位址,就能直接看到該預設頁面:

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

注意!如果這時無法通過公網ip通路頁面,請確定雲主機所處的安全組是允許所有端口通路的。

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

四. 執行一個node服務,并通過 nginx 配置實作反向代理

這裡我們簡單實作一個 node 頁面,監聽3000端口。

我們在本地先寫一個 index.js 檔案來耍一耍:

執行 node index 的話,通路 http://localhost:3000/ 會有“Hello World”的輸出:

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

然後咱們把這個檔案放到雲主機去。

鑒于我已經挂到 github上,讀者們可以直接通過如下指令來下載下傳該檔案:

p.s. 我個人下載下傳到了“/root/node-project/”檔案夾下,要執行node的話指令為:

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

OK,咱們接着先修改 nginx 配置。如果你忘了 nginx 的配置在哪裡,可以執行這條指令來确定:

本文的nginx是安裝在 /home/ubuntu 下的,是以其配置檔案路徑是“/home/ubuntu/nginx/conf/nginx.conf”,我們這樣編輯它(加上紅框部分的代碼):

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

這意味着當有請求路徑為“/hello”時,nginx 會将請求代理到伺服器的3000端口去(即node監聽的端口)。

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

五. 重新開機 nginx 和 node

到這一步的時候别忘了兩點 —— 1. 咱們修改 nginx 配置後還沒重新開機nginx服務;2. 咱們還沒有在雲主機上跑node服務(上文僅僅是在本地電腦上跑了一次)。

是以我們分别執行如下指令(重新開機nginx+跑node):

這時候直接通路 http://公網ip/hello,就能直接看到node跑起來的頁面内容了:

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理

本文送給使用騰訊雲的前端童鞋,若操作過程遇到問題歡迎留言咨詢。共勉~

騰訊雲下安裝 nodejs + 實作 Nginx 反向代理