type
status
date
slug
summary
tags
category
icon
password
前不久,出于安全性和可观察性的考虑,将我的家庭个人服务器从Nginx Proxy Manager切换到了Traefik。经过这一段时间的使用,确实感觉配置起来比nginx更方便且灵活。而且通过Cloudflare Tunnel,可以轻松实现零成本的内网穿透。
🔭 前言
本文作为系列的第一篇,只做总体的介绍和展示,后续将会一步步完成以下全部服务的配置
- Traefik 反向代理,自动发现和管理服务
- CrowdSec 安全网关,拦截非法访问请求
- Grafana 日志和指标监控,跟踪并记录访问日志和服务指标
- Cloudflared 内网穿透,无需加端口号即可访问家庭服务器
这里先给大家看一下我在本地的服务部署架构:
最终实现Http请求经过cloudflare的代理转发到Traefik,再由Traefik路由到本地不同的Docker服务中。在这个过程中,客户端并不需要知道服务的具体端口号。而且我们不用再关心SSL证书问题。除了Http,还可以代理TCP或UDP流量,如SSH,RDP服务等。
顺便再提一下,使用Traefik的服务发现,我们在新增Docker服务的时候甚至不需要去配置Traefik,只需要在新的容器上加几个Label,就能实现全自动反代,非常方便。
📝 服务介绍
什么是Traefik?
什么是CrowdSec?
CrowdSec是一个开源的、轻量级的安全软件,可以防止暴力攻击、恶意扫描、恶意软件和热点攻击等各种常见的网络攻击。它有一个非常活跃的社区,提供了一个丰富的安全规则库,而且还可以集成到Traefik的中间件中,从而实现更加自动和智能的安全防护。
CrowdSec的意思是众安,简单来说,就是所有CrowdSec的用户会检测和记录来自互联网中的恶意攻击,并将攻击者的信息上传到公共IP库,其他CrowdSec用户就可以自动屏蔽来自该攻击者的请求。
什么是Grafana?
Grafana是一个开源的数据可视化和监控平台,可以将数据从各种来源汇聚到一个统一的界面中进行展示和分析。Grafana支持的数据源非常丰富,包括Prometheus、InfluxDB、Elasticsearch、MySQL等等,而且还可以通过插件的方式扩展更多的数据源和面板。
Grafana和ELK(Elasticsearch、Logstash、Kibana)都是用于日志监控和数据可视化的工具,但是它们的设计初衷和重点略有不同。Grafana更重视数据的展示和分析,而ELK更注重日志的收集、处理和搜索。ELK可以用于收集和处理大量的日志数据,而Grafana适用于各种数据源的可视化和监控。此外,ELK也可以通过插件的方式实现面板的可视化,但在这方面,Grafana仍然是一种更为流行和成熟的解决方案。
什么是Cloudflared?
Cloudflared是由Cloudflare开发的一款轻量级的内网穿透工具。通过Cloudflared,可以将内网服务无需暴露端口,直接通过Cloudflare的服务器来访问。这一过程不仅更加安全可靠,而且还可以避免由于端口映射和路由配置带来的麻烦和安全隐患。
📝 我的系统架构
总体架构图
Treafik作为API网关,代替了Nginx Proxy Manager的反向代理,并且可以实现SSL证书的无感管理及服务自动发现,无需给每一个服务配置vhost。而且可以方便的接入中间件,如CrowdSec、Authelia、securityHeaders、cloudflarewarp等。
Dashboard展示
已知问题:
Cloudflare 服务错误:
2024更新:目前运行已稳定。
🤗 总结
这套围绕Traefik的家庭服务全家桶基本可以满足我的全部需求了,其实除了Traefik以外各种工具和中间件都是可以根据自己的需求灵活选用的,单独使用Traefik也会有不错的体验。后续的文章将详细描述从安装到配置的全过程😉!
📎 参考文章
有关Traefik安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
- 作者:Biliko
- 链接:https://biliko.net/article/traefik-part1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章