介绍
在这个项目中,你将学习如何使用 Node.js 创建一个反向代理。反向代理是一个位于客户端和后端服务器之间的服务器,它将客户端的请求转发到后端服务器,并将响应返回给客户端。
👀 预览

🎯 任务
在这个项目中,你将学习:
- 如何使用 Node.js 创建一个 HTTP 服务器
- 如何使用
Stream pipe将 GitHub 响应数据直接传递给客户端 - 如何启动反向代理服务器并对其进行测试
🏆 成果
完成这个项目后,你将能够:
- 理解反向代理的概念及其工作原理
- 使用 Node.js 创建一个反向代理,将请求代理到 GitHub 网站
- 使用
Stream pipe实现反向代理功能 - 启动并测试反向代理服务器
实现反向代理
首先,打开编辑器。你应该能在编辑器中看到一个文件——“proxy.js”。
在这一步中,你将学习如何使用 Stream pipe 将 GitHub 响应数据直接传递给客户端。请按照以下步骤完成此步骤:
- 在
proxy.js文件中,找到http.createServer函数中的// TODO注释。 - 将
// TODO注释替换为以下代码:
https.get(uri, function (response) {
response.pipe(res);
});
这段代码使用 Stream pipe 将 GitHub 响应数据直接传递给客户端。
- 保存
proxy.js文件。
启动反向代理服务器
在这一步中,你将学习如何启动反向代理服务器并对其进行测试。
- 打开一个终端并导航到项目目录。
- 运行以下命令启动反向代理服务器:
node proxy.js
你应该会看到以下输出:
Server running at http://localhost:8080/
- 打开另一个终端并运行以下命令测试反向代理:
curl --connect-timeout 2 -m 5 localhost:8080/pricing | grep GitHub
此命令向反向代理服务器发送请求,该服务器进而从 GitHub 网站获取内容并返回给客户端。
- 你应该会在终端中看到 GitHub 定价信息显示出来。

恭喜!你已成功使用 Node.js 创建了一个反向代理。现在,你可以通过修改代码并测试不同场景来对反向代理进行实验。
总结
恭喜!你已完成这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。



