Upgrade to Pro — share decks privately, control downloads, hide ads and more …

在 Google Cloud Platform 架設你的網站伺服器並撰寫 Node.js 應用程式

chph
September 01, 2017

在 Google Cloud Platform 架設你的網站伺服器並撰寫 Node.js 應用程式

afu @ PIXNET 前端團隊 2017.09.01

chph

September 01, 2017
Tweet

More Decks by chph

Other Decks in Technology

Transcript

  1. Agenda 免費註冊 GCP 建立專案與新增虛擬機器 (VM) 安裝 Apache & 你的慣用軟體 示範安裝

    Node.js 8 & PHP 7 撰寫 Node.js Hello World 程式 將 Apache 作為代理伺服器轉送請求給 Node.js 應用程式
  2. 新增 SSH 金鑰 • 點開左上漢堡 Bar • Compute Engine ->

    中繼資料 • cat ~/.ssh/id_rsa.pub P.S. 如無該檔案請用 ssh-keygen 指令產生新的金鑰
  3. 新增虛擬機器 • Compute Engine / VM 執行個體 • 機器類型:微型 (micro)

    / 1 vCPU / 0.6 GB RAM *免費* (仍顯示每月 $4.28 USD 預估費用) • 勾選允許 HTTP & HTTPS 流量
  4. 啟動網站伺服器 $ sudo service apache2 restart # 重開 server •

    start - 啟動 apache web server • stop - 停止 apache web server
  5. 練習安裝你的慣用軟體 • git / tmux / screen / mosh •

    偏好的 Shell (例如 zsh) & VIM 設定 • 偏好的程式語言 (PHP, Node.js, Python, Ruby, etc.)
  6. 示範安裝 Node.js v8.4.0 curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash

    - sudo apt-get install -y nodejs 安裝完成後可用 node -v 指令查詢版本資訊 其他作業系統平台可參考 :https://nodejs.org/en/download/package-manager/
  7. 撰寫 Node.js Hello World 伺服器程式 const http = require("http"); const

    server = http.createServer((request, response) => { response.writeHead(200, { "Content-Type" : "text/plain"}); response.write( "hello world~" ); response.end(); }); server.listen(3000); console.log("Server is listening" );
  8. 以 Apache 作為代理伺服器轉送請求 應用情境:80 port 有跑 PHP 或其他語言,將 Apache 作為

    Proxy 角色依需求 轉送請求到跑在其他 port 的 web server sudo a2enmod proxy sudo a2enmod proxy_http 範例:編輯預設 Apache config sudo vim /etc/apache2/sites-enabled/000-default.conf
  9. 把 /nodejs 路由請求轉送給 3000 port 處理 <VirtualHost *:80> # 原有設定,

    略 ProxyPass /nodejs http://localhost:3000/ </VirtualHost > *記得重開 Apache
  10. 其他方案:使用 PM2 管理 node processes sudo npm install pm2 -g

    pm2 start server.js pm2 list|restart|stop|delete http://pm2.keymetrics.io/