阿里雲主機node.js發布環境部署


很久前一直糾結一個問題,寫好的node程序如何發布到服務器主機上呢?在本地的是直接一個node app.js或者supervisor ./bin/www就可以了

但是你在服務器主機上,用戶以一個域名或者一個IP地址來訪問你的主機的時候,怎么辦?

准備工作

  • 阿里雲Linux主機
  • Xshell4
  • Xftp4
  • node.js程序,默認express

准備工作完成后,登錄你的阿里雲主機

  • 在Xshell4上登錄你的Ecs,填寫好你的主機外網IP,端口默認為22

  • 填寫好的你的登錄用戶名,Linux主機登錄用戶名如果你在購買主機的時候沒有設置的話默認的是root

  • 輸入你的主機密碼連接到你的服務器

  • 成功后會提示

現在,你的服務器Xshell環境已經進入

linux作為服務器專用操作系統,主要就是默默的待在機房提供各項網絡服務的,為了節省系統資源,像windows那樣華麗麗的用戶桌面就默認不加載了

安裝node.js環境

 依次執行以下指令:

sudo apt-get update

sudo apt-get install -y&nbsp-software-properties python g++ make

sudo add-apt-repository ppa:chris-lea/node.js

sudo apt-get update

sudo apt-get install nodejs

注意:從 Node.js v0.10.0 開始,Chris Lea 倉庫中提供的 Node.js 安裝包默認包含了 npm 和 nodejs-dev

執行 sudo add-apt-repository ppa:chris-lea/node.js 這條指令時,系統會出現如下提示,詢問你是否確定要添加上面的 PPA

這里必須是Enter

執行sudo apt-get install nodejs這條指令時,系統會出現如下提示

這里也是必須Y

上訴步驟完成后,執行node -v ,寫這篇文章的時候node.js版本為v0.10.37,所以也會出現

node.js環境已經安裝完畢

安裝nginx

nginx安裝比較簡單,直接sudo apt-get install nginx

安裝過程也會提示Y/N,統一Y

安裝完成后 nginx -v

然后這時可以測試下了,具體nginx操作命令請百度,啟動nginx

nginx 或者sudo service nginx restar

這個時候有些情況下會這樣報錯

這是因為80端口在Linux主機上已經占用,nginx默認占用的80端口

成功后在瀏覽器端輸入你的外網IP,

查看響應頭

說明nginx已經運行成功

上傳並配置node程序

做過node的都知道,express綁定的是3000端口,當然這個端口可以自己設置,現在的思路就是,3000端口保持不變,用nginx把80端口代理到3000端口,轉接到node.js上面去

用Xftp4登錄你的服務器主機,具體步驟和上面Xshell4雷同,你會發現空空如也,當然,你還沒有上傳程序,上傳程序建議先壓縮后上傳,不然你可以試試,很痛苦的,在服務器端解壓縮,注意壓縮為zip文件具體步驟下面有

下面配置nginx.conf,我這里安裝的nginx的目錄在/etc/nginx下

我的nginx.conf是這樣配置的

    upstream nodesocket {
        server 139.129.15.150:3000 fail_timeout=20s;
        server 139.129.15.150:3000 fail_timeout=20s;
    }
    server {
    #將網站域名設置好,然后端口設置為8000,最后proxy_pass設置為http://127.0.0.1:3000,將所有從localost:8000的請求傳遞到nodejs程序去。
     #重啟nginx
     #訪問域名,就可以了
        listen 80;
        server_name 139.129.15.150 ;
        location / {
        proxy_pass http://nodesocket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        }

 

 到這里,出來一個問題,如果你再次輸入域名,會給你報404,怎么運行node.js呢?如何在服務器掛掉或者重啟了自動啟動node.js呢?

別怕,有forever,forever可以看做是一個nodejs的守護進程,能夠啟動,停止,重啟我們的app應用。

前面說過了 Chris Lea 倉庫中提供的 Node.js 安裝包默認包含了 npm 和 nodejs-dev

所以,直接在Xshell4中輸入sudo npm install forever -g  ,注意forever需要安裝的全局環境下

建議npm命令加上-d 可以看到安裝進度

把你的node程序壓縮並上傳到服務器上

需要在你的Linux上安裝一個叫做unzip的東東

apt-get install unzip

你在解壓縮文件的時候會一直報錯,權限不足

更改root文件夾下的權限為777

unzip Blog.zip

 

然后forever start bin/www

注意www文件里面的server.listen 需要加上第二個參數,你的服務器外網IP

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM