如何防止Cloudflare CDN背后的图片被盗连(Hotlink Protection)? 发布于 十月 14, 2021 「Hotlink Protection」(直接链接保护)是经营网站经常需要去注意的一块,但为什么我们会需要「Hotlink Protection」呢?身为图文并茂的网络文章作家,最担心得就是自己的文章被别人整篇连文带图地拷贝粘贴到其它地方了。此时如果图片有套用「Hotlink Protection」的话,就可以让被盗用的图片在其它网站上「不被正常显示」出来,如此一来,就能使其它误入盗文页面的访客可以知道该篇文章是篇被盗用的文章。不同的网站架构有不同的「Hotlink Protection」的设置方式,如果您的网站有打开Cloudflare的CDN服务的话,可以参考这篇文章,来实现「Hotlink Protection」的功能。 我的网站服务器是用Nginx或Apache,难道不能直接对它们做设置吗? 很遗憾,只要我们有激活Cloudflare的CDN服务,就无法有效地通过自己的服务器程序来设置Hotlink Protection。这是因为网页浏览器在打开您网站的图片时,会去链接Cloudflare的CDN服务器,而非我们自己的服务器,所以就算我们有在自己的服务器上制作Hotlink Protection的功能,也根本不会被触发到。 既然有Cloudflare CDN,为什么还要Hotlink Protection?被盗连的图,其流量不是不会算在我们头上吗? 的确,有了Cloudflare CDN之后,就算图片被盗连,它主要也还是会去吃Cloudflare CDN服务器的流量。但是,您真的愿意让您文章中的图片原封不动地在盗文网站上显示出来吗?所以还是设置一下Hotlink Protection吧! Cloudflare内置的Hotlink Protection开关 Cloudflare的控制后台中,其实就有提供一个一键套用Hotlink Protection的开关,只要打开来,就可以让有激活CDN功能的网域拥有Hotlink Protection的功能。这个开关藏在Cloudflare控制后台的「Scrape Shield」分页中。 这个Hotlink Protection一旦打开,整个有打开Cloudflare CDN服务的网域(包含子网域)下的图片链接,就只能在这整个网域(包含子网域)下打开,否则的话会直接回传HTTP的403... 阅读全文
Tailscale 开源版中文部署指南(支持无限设备数、自定义多网段 、自建中继等高级特性) 发布于 六月 15, 2022 目前国家工信部在大力推动三大运营商发展 IPv6,对家用宽带而言,可以使用的 IPv4 公网 IP 会越来越少。有部分地区即使拿到了公网 IPv4 地址,也是个大内网地址,根本不是真正的公网 IP,访问家庭内网的资源将会变得越来越困难。 部分小伙伴可能会选择使用 frp 等针对特定协议和端口的内网穿透方案,但这种方案还是不够酸爽,无法访问家庭内网任意设备的任意端口。更佳的选择还是通过 VPN 来组建大内网。至于该选择哪种 VPN,毫无疑问肯定是 WireGuard,WireGuard 就是 VPN 的未来。 我已经不止一次向大家推荐使用 WireGuard 了,我累了,不想再讲了,你爱 JB 用辣鸡 OpenVPN 之类的就用吧,你开心就好。 WireGuard 相比于传统 VPN 的核心优势是没有 VPN 网关,所有节点之间都可以点对点(P2P)连接,也就是我之前提到的 全互联模式(full mesh) ,效率更高,速度更快,成本更低。 WireGuard 目前最大的痛点就是上层应用的功能不够健全,因为 WireGuard 推崇的是 Unix 的哲学,WireGuard 本身只是一个内核级别的模块,只是一个数据平面,至于上层的更高级的功能(比如秘钥交换机制,UDP 打洞,ACL 等),需要通过用户空间的应用来实现。 所以为了基于 WireGuard 实现更完美的 VPN 工具,现在已经涌现出了很多项目在互相厮杀。笔者前段时间一直在推崇 Netmaker ,它通过可视化界面来配置 WireGuard 的全互联模式,它支持 UDP 打洞、多租户等各种高端功能,几乎适配所有平台,非常强大。然而现实世界是复杂的,无法保证所有的 NAT 都能打洞成功,且 Netmaker 目前还没有 fallback 机制,如果打洞失败,无法 fallback 改成走中继节点。Tailscale 在这一点上比 Netmaker 高明许多,它支持 fallback 机制,可以尽最大努力实现全互联模式,部分节点即使打洞不成功,也能通过中继节点在这个虚拟网络中畅通无阻。 没错,我移情别恋了,从 Netmaker 阵营转向了 Tailscale,是渣男没错了。 Tailscale 是什么 Tailscale 是一种基于 WireGuard 的虚拟组网工具,和 Netmaker... 阅读全文
使用 GitOps 在无服务器时代构建现代 CI/CD 管道 发布于 九月 27, 2019 本文是 Datree.io 首席技术官兼联合创始人、AWS 社区精英 Shimon Tolts 所写的一篇客座文章。他专门从事开发人员工具和基础设施研究,所经营的公司完全没有服务器。 近年来,软件构建和发布方式发生了重大转变。这些工作主要围绕微服务、将代码拆分成小组件、使用基础设施即代码,以及将 Git 用作粘合一切的单一事实来源展开。 在本文中,我们将讨论现代软件开发的转变过程和不同环节,以展示无服务器领域可行的解决方案。此外,我还列出了适用于当今时代的实用工具。 什么是无服务器? 在深入探讨无服务器开发和工具构建这一奇妙领域之前,我先介绍一下什么是无服务器。AWS 网站谈到了四大主要优势: 无需管理服务器。 可灵活扩展。 付出与价值成正比。 自动实现高可用性。 对我而言,无服务器是指无需自己管理和扩展的所有基础设施。 在我的公司 Datree.io ,95% 的工作负载是在 AWS Fargate 上运行的,而其余 5% 则在 AWS Lambda 上运行。我们是一家无服务器公司;我们的 AWS 账户中没有 Amazon EC2 实例。有关更多信息,请参阅以下内容: io 案例研究 在生产环境中迁移到 AWS ECS Fargate CON320: Operational Excellence w/ Containerized Workloads Using AWS Fargate (re:Invent 2018) 什么是 GitOps? Git 是 免费的开源 分布式版本控制系统,旨在快速高效地处理包括小型项目和超大型项目在内的所有内容。 CI/CD 顾问 Luis Faceira 认为,GitOps 是一种工作方式。您可以将其视为一种一切均以 Git 开始和结束的方法。以下是一些重要概念: Git 是系统的 单一 事实来源 Git 是我们操作(创建、更改和销毁)所有环境的 单一 场所 所有更改都是可观察/可验证的。 在云出现之前,您是如何构建软件的 回首瀑布式云前时代,大家曾经有单独的团队负责开发、测试、安全性、运营和监控等工作。 现在,大多数组织正在向开发... 阅读全文
supervisor的command执行两条命令 发布于 四月 07, 2020 如下supervisor的进程的comand配置参数只能写一个命令 1、 要执行多条命令,可以写个sh文件包含多条命令,然后sh -x xxxx.sh,但这样又多了一个文件, 2、 把所有命令放在字符串,然后用eval来执行,这样在shell窗口可以执行,但放在supervisor报找不到eval命令。比如: command = eval "python -u app/utils_ydf/git_client.py&&gunicorn -w 9 -k gevent --bind 0.0.0.0:5402 app.apis.elong.nearby_hotel:app" 这样不能在supervisor运行。 3、 解决方式是使用如下: command = /bin/bash -c "python -u app/utils_ydf/git_client.py&&gunicorn -w 9 -k gevent --bind 0.0.0.0:5402 app.apis.elong.nearby_hotel:app" 这样就可以了。 这样每次在启动或重启进程时候,会先拉去git再部署,部署速度比jenkens的构建速度快,状态也比jenkens查看方便。 这样运行是要注意下环境变量问题,比如用python的git包时候,读取不了git的路径居然,最后是在配置的enviroment设置GIT_PYTHON_GIT_EXECUTABLE="/usr/bin/git才解决,但单独运行又能读取git。 4、command用bash -c 启动 python xx.py一定要设置如下为true,否则stop不了真正的python/java进程,因为bash命令进程和真正的python进程不是同一个。 如果是command=python xx.py这样,并且程序里面没有使用多进程,则无需设置以下。 stopasgroup = true killasgroup = true 来源:https://www.cnblogs.com/ydf0509/p/959208... 阅读全文
Bose QC25耳机更换耳罩软垫 发布于 一月 21, 2021 耳罩軟墊以固定環卡穩以固定位置。固定環卡住圍著耳罩內圍的小卡扣。 如果軟墊有部分或完全離開耳罩,請按壓固定環以卡穩耳罩。然後沿著固定環邊緣按下,確保軟墊扣合耳罩。 按這些步驟更換耳罩軟墊: 只需拉出耳罩外圍的邊緣,即可拆下軟墊。不要移除耳罩內襯物料 將新的軟墊固定環對準耳罩外圍安裝 確保軟墊平均安放左整個耳罩之上,沿邊輕輕按下以扣合耳罩 来源:https://www.bose.hk/zh_hk/support/article/ear-cushion-replacement-qc25.html 阅读全文
远离你身边的煤气灯人 发布于 一月 04, 2022 今天讲个煤气灯人的故事,这可不是一个关于张牙舞爪的喷火小木偶的恐怖故事。 我想说的远比恐怖故事惊悚多了。 它毁人心智,杀人于无形。 何为煤气灯人?如果你感觉这个词很陌生,那么朋友,你听说过PUA吗? PUA(Pick-up Artist,把妹达人),一个近年来广为人知的群体,与其相关的理论亦称为“泡学”。 大量不善交际的尝试者,几经辗转购入高价PUA课程,并将其珍若江湖两性秘笈。但同时在更多人眼中,PUA群体也沦为过街之鼠,人人喊打。甚至还有人故意在人际交往中,突显自己的直男直女本性,与“套路”二字划清界限。 但你真以为自己能摆脱PUA吗——Nope,甚至也许 你就是正在进行“情感操纵”的PUA本A 。 01. PUA,其实就是一种煤气灯人 现今意义上的PUA,上可追溯至1944年,由美国导演乔治·库克执导的一部惊悚片 《煤气灯下》(Gaslight) 中的主角安东。 在电影中,钢琴师安东(CharlesBoyer饰)为了将妻子宝拉(Ingrid Bergman饰)所要继承的大额财产据为己有,一面将自己伪装成潇洒体贴的丈夫,另一面又不断使用各种心理战术,联合家中的女佣企图将妻子逼疯。 在丈夫缜密的心理操纵下,宝拉逐渐变得神经兮兮,怀疑现实、质疑自己,最后在精神上几乎完全依附于安东。 这种试图破坏他人对现实的感知的情感操纵,也因该电影而得名为 Gaslighting(煤气灯操纵) 。下面我挑选了几个经典的Gaslighting片段让大家品品: Part 1 信息封锁:在一段时间内不断重复强调某一信息 安东和宝拉新婚满三个月时,外出去伦敦塔游玩。出门前安东送给妻子一枚小巧的白色胸针,声称是母亲去世前留给他的,并嘱咐宝拉把它收好。 此时安东略显刻意地强调了一句: “你可能会弄丢,你知道的,你经常丢三落四” 。这是电影中安东第一次对宝拉实施Gaslighting,也是宝拉初步对自己产生怀疑。 但是在二人离去之后,两位女佣之间的对话又再次佐证了,宝拉从未体现出任何异常。但是男主人安东,却不断向他们传输“女主人生病了”这一信息。 如果说此时,仆人们还对女主人生病一事尚有所怀疑。那么接下来的事情,就令他们对于这一言论深信不疑了。 当天的游玩结束后,安东便以饰物常年未佩戴、需要修理为由,向宝拉索要胸针。由于安东从一开始就并未将胸针放入宝拉的手包,而是偷偷将其藏在手心转移至别处,... 阅读全文
2019年度最喜欢浏览器拓展 发布于 九月 23, 2020 拓展之于浏览器,就像 APP 之于智能手机。 拓展的数量成千上万,但能够被用户知道的通常在100个左右,能被用户选择使用的也就50个左右,而大多数人安装的拓展也不会超过10个。 浏览器拓展的数量庞大,但真正好用的并不多。 我们经常能看到很多拓展推荐的文章,好的推荐文章各有不同,但" 没什么卵用 "的推荐文章大多很相似。 一是喜欢标题党。 动不动就这个神器,那个黑科技,诸如此类的词汇被滥用。 二是喜欢推荐 Adblock Plus 。不是说 Adblock Plus 不好,而是实在太入门了,把你当做小白用户来看待。 三是喜欢把拓展(或扩展)说成是插件。 这是对拓展认识不足的表现,就好像是一个给你推荐电脑的人,他总是把硬盘说成内存。 01 我们需要什么样的拓展? 作为一个有着5年开发经验的用户,我很能感受到“ 好东西无人问津 ”是一种什么样的体验。 我试用了 超过2000多款 浏览器拓展,这让我对浏览器拓展的选择有了新的理解。 这第一个理解就是:很多拓展没有必要安装。 真正必备的拓展属于那些 基础辅助的、使用率高的、大多数人都适用 的拓展,很多拓展其实没有必要安装。 1、一些拓展包含了多个拓展的功能。 一些非常小的功能,比如以图搜图、二维码、网页缓存查询、站内搜索、相似网页查询等,我们没有必要为了这些功能都安装一个相应的拓展,有一款叫 Selection Context Search 的拓展就可以搞定以上所有功能。 2、一些拓展可以用脚本代替。 相对于脚本来说,拓展显得更加重型,如果一个功能可以用脚本代替,那么就不要使用拓展了。 比如悬浮查看大图的拓展 Imagus ,我们能感觉得到 安装后 ,网页加载速度受到的影响,而类似的脚本 PicViewer 则几乎没有影响。 3、一些拓展应该选择使用软件版。 由于浏览器应用层面的限制,拓展的功能范围,无论再怎么强大也无法穿透浏览器,拓展的功能都是带着“ 镣铐 ”的,一些拓展可以选择相关的软件来代替。 比如截图拓展 Nimbus Screen Capture 、文字识别拓展 Copyfish 、录屏拓展 Loom 、下载拓展 Video DownloadHelper ,它们都已经是同类拓展中的... 阅读全文
kubernetes中部署mysql高可用集群 发布于 四月 21, 2020 很多软件后端使用的存储都是mysql,当这些软件系统在生产环境部署时,都会面临一个严峻问题,需要在生产环境中部署一个高可用的mysql集群服务。刚好在最近一周的工作中,需要在kubernetes环境中搭建mysql高可用集群,这里记录一下。 搭建MySQL集群 MySQL的主从半同步复制方案、Galera集群方案以前都也实践过,感觉都不是太友好,配置比较麻烦,而且发生故障转移时经常需要人工参与。所以这里还是采用MySQL官方推荐的Group Replication集群方案。关于MySQL Group Replication集群的架构设计可以看 官方文档 ,懒得看英文的话,也可以看我之前整理出的 资料 。另外kubedb网页上也有介绍 MySQL几种高可用方案的构架方案 ,也比较有意思。 之前的博文 也讲过在非容器环境搭建MySQL Group Replication集群,现在在Kubernetes的容器环境配合kubedb,搭建更方便了,命令如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 # 添加appscode的helm仓库 $ helm repo add appscode https://charts.appscode.com/stable/ $ helm repo update # 部署kubedb $ helm install appscode/kubedb --namespace kube-system --name kube... 阅读全文
Windows 10新增云端下载系统新功能:无U盘重装 发布于 九月 02, 2019 8月30日,微软面向Fast ring快速通道的Insider会员推送Windows 10新预览版,版本号Build 18970,隶属于20H1更新。 此次更新最大的变化是为二合一PC带来全新设计的平板模式。 但同时, 该版本也带来了一个Mac上备受好评的功能——云端下载系统镜像并重装系统。 具体来说, 打开新版Windows 10的设置-更新与安全-恢复-开始重置此电脑-清除所有数据中,会多出一个“云端下载”的选项,点选该选项后,Windows 10会自动从云端下载纯净版Windows 10镜像,并重装系统。 需要注意的是,希望从云端下载纯净系统的用户必须选择清除所有数据的选项,所以需要提前做好文件备份。 该选项应该可以取代大部分U盘重装的效果,如果该选项大规模普及应该也会减少不少“电脑高手”的日常操作量吧。 阅读全文
评论