Single‧9 |
Posted: 26 Oct 2015 03:04 AM PDT Opebshift 是由知名的 RedHat 公司所提供的一個雲端服務,它透過 AWS(Amazon Web Service, AWS) 來提供使用者雲端主機的服務,而且是一個幾近完全功能的主機。 你可以在上面啟用 Apache、PHP、JAVA...等的支援,還支援先進的 NodeJS、GO 等新興語言,關於這服務的詳細內容可以參考香腸所撰寫的這篇文章。
今天我們要教各位如何把你所撰寫好的 NodeJS 程式部屬到 OpenShift 上,並且自動執行而不需要經過登入遠端伺服器來啟動的步驟。 開始之前主程式命名請將你的 NodesJs 程式主要啟動的檔案更名為 server.js 。 生成 package.json在你準備將 NodeJS 程式部屬到 OpenShift 之前,請先利用 確認 package.json 內容scripts 與 main確認 "scripts" 和 "main" 內容如下 "scripts": { "start": "node server.js" }, "main": "server.js" 模組相依性在剛生成 package.json 中有時不會記錄你程式中所使用的模組相依性,請透過 package.json 這邊是官方範例裡面的 package.json 的內容可以作為修改參考。 { "name": "OpenShift-Sample-App", "version": "1.0.0", "description": "OpenShift Sample Application", "keywords": [ "OpenShift", "Node.js", "application", "openshift" ], "author": { "name": "OpenShift", "email": "ramr@example.org", "url": "http://www.openshift.com/" }, "homepage": "http://www.openshift.com/", "repository": { "type": "git", "url": "https://github.com/openshift/origin-server" }, "engines": { "node": ">= 0.6.0", "npm": ">= 1.0.0" }, "dependencies": { "express": "~3.4.4" }, "devDependencies": {}, "bundleDependencies": [], "private": true, "main": "server.js" } 準備部屬完成上述的動作之後,要來準備將你的程式部屬到 OpenShift 中。 Public Key因為 Openshift 是透過 git 經由 SSH 的加密通訊方式來部署,而他又因安全性顧慮的關係,不提供直接輸入帳號與密碼的方式登入,因此我們必須讓 Openshift 知道你 SSH 的 Public Key 才能夠登入。 這部分因為篇幅較長,我會另外用一篇文章來作這部分的介紹,在此之前還請各位先參考官方的說明(英文)來做設定。 啟動虛擬機器這邊我們將會進入到 Openshift 的網頁版控制台,將預載有 Node 的虛擬伺服器啟動後再透過 首先進入到管理網頁中 建立一個新的 Application 然後選擇方案,這裡們選擇的是 NodeJS 輸入相關設定,包含網址等等 最後點下 Create Application 稍微等一下就行。 啟動完成後,系統會給你 git clone ssh://Openshift給你的@nodejs-s9.rhcloud.com/~/git/nodejs.git/ cd nodejs/ 進入資料夾並覆蓋之後,用以的 git 指令來做包裝以及推送(push)到 Openshift 的 Server 上。 git add . git commit -m 'My changes' git push 當你看到 remote: Git Post-Receive Result: success 就是成功上傳並啟動 nodejs 伺服器了! 最後再透過 Openshift 控制台的網頁來進入你的網站看看,如果有呈現畫面就是沒有任何問題,這篇文章的範例網站請點這裡。 注意關於 Openshift 有兩項要注意的事情
除了這兩項外,Openshift 算是一個非常好用且穩定的服務,值得用做測試或甚至是正式上線的服務提供端。 |
You are subscribed to email updates from Single.9. To stop receiving these emails, you may unsubscribe now. |
Email delivery powered by Google |
Google Inc., 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States |