Anduin Xue
Anduin Xue

Anduin's Tech Blog

Proxy


Install GitLab behind a reverse proxy on a Ubuntu 20.04\22.04 server

这篇博客详细介绍了在Ubuntu 20.04/22.04服务器上部署GitLab并配置反向代理的完整流程。文章从基础环境搭建到高级网络配置,逐步引导读者完成GitLab服务的部署与优化。核心内容包括:通过Caddy反向代理实现HTTP/HTTPS流量分发、处理GitLab与反向代理之间的网络信任关系、解决多服务器架构下SSH端口的转发难题,以及通过GitLab Runner实现CI/CD管道的完整集成。作者特别强调了在生产环境中配置反向代理时需要处理的细节问题,例如Nginx的监听端口设置、真实IP地址的传递、SSH服务的端口隔离等关键配置。文章最后展示了如何通过编写.gitlab-ci.yml文件实现.NET项目的自动化构建、代码分析和测试覆盖率统计。整个部署方案不仅涵盖了基础功能的实现,更深入探讨了服务间的网络通信安全性和可扩展性问题。当读者完成这些步骤后,不禁会思考:如何在保持反向代理架构优势的同时进一步优化服务响应速度?当服务器数量增加时,如何设计更灵活的端口管理策略?此外,当引入更多微服务时,如何确保整个CI/CD管道的稳定性和可维护性?这些未展开的问题为读者提供了进一步探索的方向。--Qwen3

bash git Linux Ubuntu Proxy SSH Caddy GitLab nginx

CaddyV2 tips and examples (How to correctly get user's IP address after a reverse proxy)

Caddy V2作为现代反向代理工具展现了极强的可定制性与场景适配能力文章通过编译带有Proxy Protocol插件的自定义Caddy版本揭示了如何在FRP等隧道代理后精准获取用户真实IP地址这一核心难题同时展示了从静态文件托管到动态负载均衡的12种典型配置方案包括如何通过header操作实现安全加固如何结合IP白名单与路径匹配进行精细化访问控制以及如何利用基础认证与健康检查构建多层防护体系值得注意的是当反向代理链涉及多层嵌套时配置的允许规则与超时参数往往成为系统稳定性的关键变量文章尤其值得关注的创新点在于将Caddy的模块化特性与实际网络拓扑深度结合例如通过cookie-based负载均衡策略实现会话保持或在HTTPS跳转时自动移除潜在风险头字段这种将协议细节与安全策略有机融合的实践思路值得深入思考当面对混合云环境或混合网络架构时如何设计既能满足性能要求又能保证可观测性的反向代理方案或许正是本文抛砖引玉的价值所在--Qwen3

Reverse Proxy Linux Ubuntu Proxy FRP Caddy CaddyV2 IP Address Proxy Protocol

Creating a proxy to another URL with ASP.NET Core

本文介绍了一种在ASP.NET Core中实现HTTP代理的轻量级方案通过扩展方法将HttpContext转换为可重用的HttpRequestMessage并构建完整的请求转发与响应处理链。文章重点展示了两个核心方法CreateProxyHttpRequest与CopyProxyHttpResponse的实现逻辑:前者通过解析原始请求方法处理流式数据并复制请求头信息构建目标请求对象后者则通过处理响应状态码头信息及响应体实现透明返回。这种设计允许开发者在现有项目中灵活实现请求代理功能而无需部署独立的代理服务器。值得注意的是实现过程中针对不同HTTP方法的处理差异以及头信息的精细拷贝策略都体现了对HTTP协议的深入理解。当访问特定路由时请求将被代理至目标URL(如示例中的google.com)并保持浏览器端的无感知交互。这种技术方案为API调试中间件开发等场景提供了新的可能性但同时也引发思考:如何在实际项目中平衡代理功能的灵活性与安全性?如何处理更复杂的路由规则与身份验证需求?当请求链延长时如何优化性能瓶颈?这些问题都值得开发者结合具体场景深入探索与实践。--Qwen3

ASP.NET Core C# Reverse Proxy Web Proxy HTTP Proxy

  • 1