Cloudflare 教程

Cloudflare的应用还是挺多的,赛博大善人这一块。开个笔记来总结一下我常用的一些用途。 基本使用 我之前一直都是,在哪个网站买的域名,就在哪里做DNS的解析。后来发现首先是Cloudflare来做DNS解析的话,有很多额外free的功能很好用,比如说提供长期的、支持子域名的SSL证书,做缓存Always Online,免费CDN加速(不过在国内好像是反向加速……),人机验证等等。 拿liushiguang.com这个域名来举例: 邮件路由 用这个方法可以理论上获得无限的邮箱。 原理其实很简单,就是在解析域名的时候加上几条DNS记录,使得发送到该域名(比如 xxx@liushiguang.com)的邮件会被转发到你设置好的邮箱里面。当然也可以把邮件转发到Cloudflare的Worker来做一些自动化的处理操作,但其实我主要还是转发到邮箱里面。 Cloudflare R2 S3兼容API Cloudflare R2支持通过S3兼容的API来访问,免费额度有10G的存储空间;A类操作(PUT、LIST等)每月100w次,B类操作(GET等)每月1000w次。白嫖就是爽。 以CherryStudio的S3兼容存储备份为例,把流程列一下。 S3相关的要填的信息主要有:API地址、区域、存储桶、Access Key ID以及Secret Access Key这几个值。 图床 Cloudflare Turnstile

发布于 2026-01-01 · 上次修改 2026-01-02 · 1 分钟 · 23 字 · 流逝光

Nginx单域名部署多项服务

这个需求其实非常的自然而然,我刚学会nginx反向代理部署服务的时候,就有这个需求:我就这一个域名,我怎么在这个域名下,部署我的多项服务?二级访问目录并不是一个好方法,主要是因为直接对该域名下的目录进行了绑定,对绑定在根域名…

发布于 2025-10-16 · 上次修改 2026-01-14 · 1 分钟 · 72 字 · 流逝光

Nginx配置SSL

1. 下载SSL证书 在SSL服务提供商处,下载Nginx(适用大部分场景)(pem文件、crt文件、key文件)格式的SSL证书 2. 安装SSL证书到Nginx服务器 前置:为Nginx安装好SSL模块 nginx -V 2>&1 | grep -o -- '--with-http_ssl_module' 执行以下命令,若输出--with-http_ssl_module则说明已安装 SSL 模块,否则需进行安装。 a. 将domain.key和domain_bundle.crt文件放在服务器/etc/nginx/cert中 b. 添加监听443端口的server块 server { listen 443 ssl default_server; server_name yourdomain.com www.yourdomain.com; # ======================= 证书配置开始 ======================= # 指定证书文件(中间证书可以拼接至该pem文件中),请将 /etc/nginx/cert/ssl.crt 替换为您实际使用的证书文件的绝对路径 ssl_certificate /etc/nginx/cert/ssl.crt; # 指定私钥文档,请将 /etc/nginx/cert/ssl.key 替换为您实际使用的私钥文件的绝对路径 ssl_certificate_key /etc/nginx/cert/ssl.key; # 指定允许的 TLS 协议版本,TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差 ssl_protocols TLSv1.2 TLSv1.3; # 自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置) ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 优先使用服务端指定的加密套件 ssl_prefer_server_ciphers on; # 配置 SSL 会话缓存,提高性能 ssl_session_cache shared:SSL:1m; # 设置 SSL 会话超时时间 ssl_session_timeout 5m; # ======================= 证书配置结束 ======================= # 其它配置 ... } c. 可选:设置 http 请求自动跳转到 https。在原有监听 80 端口的 server 块中添加 return 指令即可。 ...

发布于 2025-10-16 · 上次修改 2025-10-16 · 1 分钟 · 124 字 · 流逝光

Linux休眠机制

基础 广义来讲,在Linux中支持 三种睡眠模式 ,分别是: Suspend to RAM,即狭义的挂起(Suspend),本文后面提到挂起都是指这种模式。 Suspend to Disk,即我们常说的休眠(Hibernate)。 Suspend to Both,也被称作Hybrid Suspend,是上面两种模式的混合,兼具两种模式的优点(和缺点)。 Ubuntu桌面版默认只有挂起(Suspend)模式,没有启用休眠(Hibernate)模式。 挂起和休眠的目标都是保存冻结系统当前状态,后续需要时“快速”唤醒恢复,但是两者的实现方式是不同的。 挂起时系统的运行数据仍然保存在内存(RAM,通常也叫MEM)中,所以系统还是会以较低的功耗消耗电池电量。这种状态下唤醒系统恢复非常快速,在普及SSD的现在是包括苹果在内很多操作系统的默认选项。 休眠时系统的运行数据被写入磁盘(DISK),系统也会完全切断电源(大部分情况下),唤醒时需要先从硬盘读取数据到内存,因为恢复速度比挂起慢,实测甚至要慢于开机(20s vs 10s)。 休眠的好处就是笔记本实际是关机状态,完全不耗电不发热,不用担心意外断电、进水和误触键盘唤醒系统,可以放心的携带和保存。 Linux底层有两种实现来支持挂起和休眠,一种是内核(kernel)自带的swsusp,另一种是uswsusp(‘Userspace Software Suspend’) ,后者封装了前者,并且提供了更多的功能,通常swsusp已经够用了。 swsusp的原理是向/sys/power目录中的文件写入特定的状态字符串来操作系统的状态。 最重要的是/sys/power/state、/sys/power/mem_sleep、/sys/power/disk三个文件,分别保存了当前系统支持的睡眠模式、挂起方法、休眠方法,具体信息可以参考 官方文档 Systemd工具提供了睡眠管理的高级命令systemctl suspend、systemctl hibernate、systemctl hybrid-sleep。 配置 配置/swapfile,启用休眠需要比内存稍大的swap空间,推荐使用swapfile,从2.4内核开始, swapfile的性能已经不弱于swap分区,并且更容易调整大小,如果使用btrfs文件系统,需要内核升级到5.0以上才支持swapfile # 先关闭已有的swap空间 sudo swapoff -a # 分配连续的磁盘空间,fallocate比dd命令更安全快速,空间大小参考后面的表格 sudo fallocate -l 20G /swapfile # 修改权限 sudo chmod 600 /swapfile # 启用swapfile sudo mkswap /swapfile sudo swapon /swapfile # 确认结果 sudo swapon --show free swap文件的大小可以参考下面的表格: 内存 关闭休眠时swap空间大小 启用休眠时swap空间大小 最大swap空间大小 4GB 2GB 6GB 8GB 8GB 3GB 11GB 16GB 12GB 3GB 15GB 24GB 16GB 4GB 20GB 32GB 24GB 5GB 29GB 48GB 32GB 6GB 38GB 64GB 64GB 8GB 72GB 128GB 文件系统启动时挂载/swapfile echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab 配置启动内核参数 # 查看swapfile的UUID sudo findmnt -no UUID -T /swapfile # 查看swap_file_offset,忽略..符号 sudo filefrag -v /swapfile | awk '{ if($1=="0:"){print substr($4, 1, length($4)-2)} }' # 编辑grub文件 sudo nano /etc/default/grub # 将grub文件中GRUB_CMDLINE_LINUX_DEFAULT参数修改为如下形式 # 其中UUID和resume_offset的值更换为上面两个命令的输出 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=51f8eab4-d775-4020-aace-0e411ef5b8ed resume_offset=34816" # 保存退出,然后更新grub配置 sudo update-grub # 编辑initramfs sudo nano /etc/initramfs-tools/conf.d/resume # 加入下面一行,UUID替换为实际值 resume=UUID=51f8eab4-d775-4020-aace-0e411ef5b8ed # 保存退出,然后更新initramfs配置 sudo update-initramfs -u # 重启 reboot 重启后执行sudo systemctl hibernate测试是否可以正常休眠。 ...

发布于 2025-05-01 · 上次修改 2025-05-01 · 3 分钟 · 433 字 · 流逝光