使用 Azure Storage Account 搭建 SFTP 服务器

2025-03-19#Azure#SFTP

Azure Storage Account 提供了 SFTP 的特性,可使用 Blob Container 作为数据存储,然后通过 SFTP 协议对外提供服务。在生产应用中,除了提供基本的文件上传下载之外,还要考虑其他的非功能需求。本文简要记录实战中的经验。

.NET应用如何加载多个 appsettings.json 文件

2025-03-18#.NET#C#

在 .NET 应用中,通常使用 appsettings.json 文件存储应用的配置信息。对于有多个环境的项目,通常还会针对每个环境,再创建一个 appsettings.{Environment}.json 用于存储特定于每个环境的配置,比如 appsettings.Development.jsonappsettings.Production.json 等。然后,可以在代码中,加载并合并 appsettings.jsonappsettings.{Environment}.json。对于简单的值为字符串类型的配置,合并规则简单明了:直接覆盖即可。但是,如果配置项是复杂结构,比如嵌套的字典和数组,那么合并多个配置文件时,是什么规则呢?

在 Ubuntu/Debian Linux 服务器搭建开源版本的 Grafana

2025-02-08#Grafana#Linux

Grafana 是一款数据可视化与监控分析平台,支持从多种数据源(如 Prometheus、InfluxDB 等)获取数据,能以直观的图表、仪表盘等形式展示数据,助力用户进行数据洞察和监控告警。包括付费的企业版和免费的开源版本。本文介绍在 Linux 服务器搭建开源版本的 Grafana。

Azure实战:在 Front Door 中配置路由

2025-02-07#Azure#Front Door

Azure Front Door 是 Azure 云平台提供的 CDN 服务。在 Front Door 中配置路由,即将其作为反向代理使用,应该能满足绝大部分的需求。本文分享一些实战经验。

通过 UPnP 协议监测路由器的流量

2025-02-07#UPnP#Go

UPnP 即“通用即插即用”(Universal Plug and Play),能让网络设备自动发现和配置,实现互联互通。基于 UPnP,路由器能与设备更好交互,为监测路由器流量提供便利,助用户管理网络。对于支持 UPnP 且开启了 UPnP 的路由器,可通过特定接口访问路由器的状态信息。

开源的智能家居自动化平台 Home Assistant 内置了对 UPnP 设备的支持,在添加了 UPnP/IGD 设备后,即可看到局域网内的路由器,并且获取路由器的上传和下载速率。下文以简单的代码示例,介绍通过 Golang 代码获取路由器的流量数据的方法。

在 macOS 上通过 SSH 将远程目录挂载到本地文件系统

2025-01-17#sshfs#macOS

sshfs 是一个通过普通的 SSH 协议将远程服务器上的目录挂载到本机的工具。在 macOS 上,可使用 macFUSE 和 SSHFS 实现。

测试已启用 HTTPS 但尚未配置域名的站点

2025-01-17#HTTPS#SNI

在搭建好Web站点并配置了SSL证书后,由于某些原因,还不能将正式的域名指向该该站。比如正在进行服务器迁移,必须确保新服务器一切正常,并在特定的时间才能进行切换。此时,该如何测试站点除了域名之外,已经配置正确?最显而易见的方式,其实就是修改域名解析。既然无法修改公共的DNS记录,那么可以修改本地的 hosts 文件;除此之外,还可以使用 cURL 或者编程实现。

将 Linux 的 systemd 日志转发到 NewRelic

2025-01-13#NewRelic#Linux

Linux 上的 systemd-journal-upload 服务可用于将 systemd 的日志发送到远程的日志服务器。这样便于将日志进行集中式的归档,搜索等;而将日志保存在远程服务器,在一定程度上也提高了安全性。但是 systemd-journal-upload 的目标日志服务器是 systemd-journal-remote 服务。在云服务器大行其道的今日,搭建和使用 systemd-journal-remote 有一些老派了。时髦的做法,是将日志发送到云服务器,这样在浏览器里可以查看和全文检索。

NewRelic 是一个 SaaS 服务器,它的 Infrastruct Agent 可用于收集系统指标、日志等。对其进行简单配置,即可将 systemd 的日志,发送到 NewRelic。

Pulumi 实战:引用没有被 Pulumi 管理的资源

2025-01-09#Pulumi#IaC

Pulumi 是一款 “基础设施即代码”(Infrastructure as Code, IaC)工具,它允许用户使用代码来定义云资源,进而以声明式(Declarative)的方式管理亚马逊云科技(AWS)、微软 Azure、谷歌云平台(GCP)等云服务上的各类资源。尽管 IaC 是时髦的工程实践,但如果“不幸地”工作在遗留项目中,那么在使用 Pulumi 管理资源时,可能需要引用一些手动创建(或者以其他工具创建)的资源。幸运的是,Pulumi 的 Get 函数可用于引用那些不被 Pulumi 管理的资源。

使用 NodeMCU 和 Tasmota 在 OLED 液晶屏幕上显示文本

2025-01-05#Tasmota#NodeMCU#IoT

Tasmota Display 是一个用于支持外部显示屏的 ESP 固件,支持 OLED、TFT 等显示屏。在完成基本设置后,发送命令给 Tasmota,即可在显示屏上显示自定义的文本等。本文以 SSD1306 OLED 显示屏为例,介绍搭建这套环境的简单步骤。