使用Node.js和Express.js架設HTTP/2伺服器
使用Node.js+Express.js架設http2伺服器是非常簡單。首先在伺服器端使用openssl產生金鑰檔案,然後在js檔案中包含這個金鑰檔案。
下一步,初始化package.json和下載spdy和express:
建立一個index.js作為埠,頭部輸入:
下一步定義Express路由:
下面需要載入key和金鑰檔案:
最後,將SSL選項和Express例項一起載入:
原始碼見:github
$ mkdir http2-express $ cd http2-express $ openssl genrsa -des3 -passout pass:x -out server.pass.key 2048 ... $ openssl rsa -passin pass:x -in server.pass.key -out server.key writing RSA key $ rm server.pass.key $ openssl req -new -key server.key -out server.csr $ openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt <p class="indent"> |
下一步,初始化package.json和下載spdy和express:
npm init npm i express spdy --save <p class="indent"> |
建立一個index.js作為埠,頭部輸入:
const port = 3000 const spdy = require('spdy') const express = require('express') const path = require('path') const fs = require('fs') const app = express() <p class="indent"> |
下一步定義Express路由:
app.get('*', (req, res) => { res .status(200) .json({message: 'ok'}) }) <p class="indent"> |
下面需要載入key和金鑰檔案:
const options = { key: fs.readFileSync(__dirname + '/server.key'), cert: fs.readFileSync(__dirname + '/server.crt') } <p class="indent"> |
最後,將SSL選項和Express例項一起載入:
spdy .createServer(options, app) .listen(port, (error) => { if (error) { console.error(error) return process.exit(1) } else { console.log('Listening on port: ' + port + '.') } }) <p class="indent"> |
原始碼見:github
相關文章
- 使用 HTTP/2 加速 Node.js 應用HTTPNode.js
- 使用 Java 11 HTTP Client API 實現 HTTP/2 伺服器推送JavaHTTPclientAPI伺服器
- [譯]當 Node.js Core 遇到 HTTP/2Node.jsHTTP
- Node.js 系列 – 搭建 “Hello World” HTTP 伺服器Node.jsHTTP伺服器
- Node.js實現一個HTTP伺服器Node.jsHTTP伺服器
- Node.js 系列 - 搭建 "Hello World" HTTP 伺服器Node.jsHTTP伺服器
- 使用 HTTP2 做開發伺服器 (上)HTTP伺服器
- node.js http.get 和http.post 資料Node.jsHTTP
- TCP、HTTP和Node.js的那些事TCPHTTPNode.js
- 基於Node.js的HTTP/2 Server實踐Node.jsHTTPServer
- [譯] Node.js 能進行 HTTP/2 推送啦!Node.jsHTTP
- HTTP協議之:HTTP/1.1和HTTP/2HTTP協議
- 使用node.js 進行伺服器端JavaScript程式設計Node.js伺服器JavaScript程式設計
- 使用flask開發RESTful架構的api伺服器端(2)–flask的安裝和使用FlaskREST架構API伺服器
- 使用Netty實現HTTP2伺服器/客戶端的原始碼和教程 - BaeldungNettyHTTP伺服器客戶端原始碼
- HTTP/2 伺服器推送(Server Push)教程HTTP伺服器Server
- golang http 伺服器程式設計GolangHTTP伺服器程式設計
- <node.js學習筆記(4)>stream和http模組Node.js筆記HTTP
- 使用Python搭建http伺服器PythonHTTP伺服器
- 使用nginx搭建http代理伺服器NginxHTTP伺服器
- netty系列之:搭建客戶端使用http1.1的方式連線http2伺服器Netty客戶端HTTP伺服器
- 深入理解 Express.jsExpressJS
- Node.js使用HTTP上傳G級的大檔案Node.jsHTTP
- RHELTELNET伺服器架設伺服器
- 使用 Wireshark 除錯 HTTP/2 流量除錯HTTP
- netty系列之:使用netty實現支援http2的伺服器NettyHTTP伺服器
- 從HTTP/0.9到HTTP/2:一文讀懂HTTP協議的歷史演變和設計思路HTTP協議
- 在伺服器上使用 smart http 搭建 Git 伺服器伺服器HTTPGit
- 深入理解http1.x、http 2和httpsHTTP
- 使用 HTTP 上傳 G 級的檔案之 Node.js 版本HTTPNode.js
- 手寫Express.js原始碼ExpressJS原始碼
- NPM私有伺服器架設 FOR CentOSNPM伺服器CentOS
- node.js啟動http服務Node.jsHTTP
- 推薦設計模式和架構設計的入口網站:http://www.patternscentral.com/設計模式架構網站HTTP
- HTTP/2之伺服器推送(Server Push)最佳實踐HTTP伺服器Server
- node.js伺服器Node.js伺服器
- 為SSD程式設計(2):SSD的架構和基準程式設計架構
- Jetpack架構元件學習(2)——ViewModel和Livedata使用Jetpack架構元件ViewLiveData