使用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 系列 – 搭建 “Hello World” HTTP 伺服器Node.jsHTTP伺服器
- Node.js實現一個HTTP伺服器Node.jsHTTP伺服器
- 使用 HTTP2 做開發伺服器 (上)HTTP伺服器
- 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協議
- 使用Netty實現HTTP2伺服器/客戶端的原始碼和教程 - BaeldungNettyHTTP伺服器客戶端原始碼
- 基於XP架設Web和FTP伺服器基於XP架設Web和FTP伺服器真沒想到WebFTP伺服器
- 使用Python搭建http伺服器PythonHTTP伺服器
- netty系列之:使用netty實現支援http2的伺服器NettyHTTP伺服器
- HTTP/2 伺服器推送(Server Push)教程HTTP伺服器Server
- netty系列之:搭建客戶端使用http1.1的方式連線http2伺服器Netty客戶端HTTP伺服器
- <node.js學習筆記(4)>stream和http模組Node.js筆記HTTP
- 深入理解http1.x、http 2和httpsHTTP
- Jetpack架構元件學習(2)——ViewModel和Livedata使用Jetpack架構元件ViewLiveData
- Node.js 的 http模組Node.jsHTTP
- 從HTTP/0.9到HTTP/2:一文讀懂HTTP協議的歷史演變和設計思路HTTP協議
- 在伺服器上使用 smart http 搭建 Git 伺服器伺服器HTTPGit
- 推薦使用Next.js或Fastify替代Express.js - JoelJSASTExpress
- node.js啟動http服務Node.jsHTTP
- 使用Python建立簡單的HTTP伺服器PythonHTTP伺服器
- 伺服器http 301 和 302的區別伺服器HTTP
- HTTP/2之伺服器推送(Server Push)最佳實踐HTTP伺服器Server
- 手寫Express.js原始碼ExpressJS原始碼
- 使用 Node.js 開發簡單的腳手架工具Node.js
- node.js伺服器Node.js伺服器
- 使用前端node.js 提供的伺服器live-server前端Node.js伺服器Server
- 使用Node.js原生API寫一個web伺服器Node.jsAPIWeb伺服器
- 淺談使用node.js怎麼搭建本地伺服器Node.js伺服器
- 架設伺服器的基本條件有哪些?如何架設一臺高效能伺服器伺服器
- 【Apollo】(2)--- Apollo架構設計架構
- 使用Java Socket手擼一個http伺服器JavaHTTP伺服器
- 用 Python 快速實現 HTTP 和 FTP 伺服器PythonHTTPFTP伺服器
- nginx: 高效能http和反向代理伺服器NginxHTTP伺服器