jaxiu He
Home
博客
动态
关于
jaxiu He
Categories
技术 (53)
项目分析 (17)
架构设计 (10)
Ai工具 (8)
教程 (3)
Ai (2)
技术实践 (2)
源码解析 (2)
运维 (2)
Ai应用 (1)
Blog (1)
Devops (1)
前端 (1)
安全 (1)
应用案例 (1)
开发指南 (1)
开源项目 (1)
总结 (1)
效率工具 (1)
智能客服 (1)
系统设计 (1)
自动化 (1)
Featured Tags
nps (18)
go语言 (15)
ai (13)
deepchat (13)
qwen code (9)
架构设计 (8)
todoing (7)
内网穿透 (6)
开源项目 (6)
electron (5)
开发工具 (4)
教程 (4)
服务端 (4)
docker (3)
git (3)
mongodb (3)
node.js (3)
多平台 (3)
客户端 (3)
架构 (3)
Recommend Series
Qwen Code实践 (1)
开源项目 (1)
Blogs
58 posts
««
«
15
16
17
18
19
»
»»
NPS 代理实现:HTTP/HTTPS 域名解析与高级功能
Jul 18, 2025
4 minutes read
引言 在 NPS 系列文章中,我们已经深入探讨了 NPS 的多种代理模式。本篇文章将聚焦于 NPS 的 HTTP/HTTPS 域名解析功能,这是 NPS 实现 Web 服务穿透的核心。我们将通过分析 nps/server/proxy/http.go 文件,揭示 NPS 如何处理 HTTP 和 HTTPS 请求,并实现缓存、认证、动态后端切换等高级功能。 HTTP/HTTPS 域名解析的需求 在实际应用中,我们经常需要将内网的 Web 服务通过域名暴露到公网。这涉及到: 域名到内网 IP 的映射:根据请求的域名,将流量转发到内网中对应的 Web 服务器。 HTTP/HTTPS 协议处理:NPS 需要能够处理标准的 HTTP 请求,以及加密的 HTTPS 请求。 高级功能:为了提升性能、安全性和灵活性,通常还需要支持缓存、认证、负载均衡、自动 HTTPS 等功能。 http.go:HTTP/HTTPS 域名解析的实现 http.go 文件定义了 httpServer 结构体,它是 NPS 实现 HTTP/HTTPS 域名解析的核心。 ......
技术
项目分析
NPS
HTTP
HTTPS
域名解析
反向代理
Go语言
缓存
认证
NPS 代理实现:HTTPS 代理与 SNI 证书管理
Jul 18, 2025
5 minutes read
引言 在 NPS 系列文章中,我们已经探讨了 NPS 的整体架构、服务端核心以及多种代理模式。本篇文章将深入 NPS 的 HTTPS 代理实现。我们将通过分析 nps/server/proxy/https.go 文件,揭示 NPS 如何处理加密的 HTTPS 流量,特别是其对 SNI(Server Name Indication)的支持和多证书管理机制。 HTTPS 代理的需求与挑战 HTTPS 代理比普通的 HTTP 代理更为复杂,因为它涉及到 SSL/TLS 加密。主要挑战包括: SSL/TLS 握手:代理服务器需要参与 SSL/TLS 握手过程,解密客户端请求,然后加密转发给目标服务器,或者直接将加密流量转发给目标服务器。 SNI 支持:为了在同一个 IP 地址上托管多个 HTTPS 网站,客户端在 SSL/TLS 握手时会通过 SNI 扩展告知服务器其要访问的域名。代理服务器需要根据 SNI 信息选择正确的证书。 证书管理:代理服务器需要能够管理和加载多个域名的 SSL/TLS 证书。 https.go:HTTPS 代理的实现 https.go 文件定义了 HttpsServer 结构体,它是 NPS 实现 HTTPS 代理的核心。 ......
技术
项目分析
NPS
HTTPS代理
SNI
SSL/TLS
Go语言
网络安全
NPS 代理实现:WebSocket 代理与 HTTP 反向代理
Jul 18, 2025
5 minutes read
引言 在 NPS 系列文章的前几篇中,我们已经探讨了 NPS 的整体架构、服务端核心以及多种代理模式(TCP 隧道、HTTP 代理、SOCKS5 代理、P2P 代理和 UDP 代理)。本篇文章将深入 NPS 的 WebSocket 代理和 HTTP 反向代理实现。我们将通过分析 nps/server/proxy/websocket.go 文件,揭示 NPS 如何处理这两种特殊的 HTTP 流量,实现更灵活的网络穿透。 WebSocket 与 HTTP 反向代理的需求 WebSocket:提供客户端和服务器之间的全双工通信通道,常用于实时应用,如聊天、在线游戏、股票行情等。传统的 HTTP 代理无法直接处理 WebSocket 协议的升级和持续连接。 HTTP 反向代理:将客户端的 HTTP 请求转发到后端服务器,并返回后端服务器的响应。它通常用于负载均衡、SSL 卸载、缓存和安全防护等。 websocket.go:WebSocket 与 HTTP 反向代理的实现 websocket.go 文件主要定义了 HttpReverseProxy 和 ReverseProxy 两个结构体,它们共同协作来处理 HTTP 反向代理和 WebSocket 连接。 ......
技术
项目分析
NPS
WebSocket
HTTP反向代理
Go语言
网络通信