<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Nginx on Tony Bai</title><link>https://tonybai.com/tags/nginx/</link><description>Recent content in Nginx on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Tue, 25 Nov 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/nginx/index.xml" rel="self" type="application/rss+xml"/><item><title>谁“杀”死了你的 HTTP 连接？—— 揭秘云环境下连接池配置的隐形陷阱</title><link>https://tonybai.com/2025/11/25/who-killed-your-http-connection-traps-of-connection-pooling/</link><pubDate>Tue, 25 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/25/who-killed-your-http-connection-traps-of-connection-pooling/</guid><description>本文永久链接 – https://tonybai.com/2025/11/25/who-killed-your-http-connection-traps-of-connection-pooling 大家好，我是Tony Bai。 你是否在生产环境中遇到过偶现的 EOF、connection reset by peer 或 unexpected end of stream 错误？ 你是否检查了代码...</description></item><item><title>Go语言正在成为“老旧”生态的“新引擎”？从 FrankenPHP 和新版 TypeScript 编译器谈起</title><link>https://tonybai.com/2025/08/06/go-new-engine-of-old-languages/</link><pubDate>Wed, 06 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/06/go-new-engine-of-old-languages/</guid><description>Go语言正在成为“老旧”生态的“新引擎”？从 FrankenPHP 和新版 TypeScript 编译器谈起 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进...</description></item><item><title>从简单到强大：再次探索Caddy服务器的魅力</title><link>https://tonybai.com/2024/11/07/exploring-caddy/</link><pubDate>Thu, 07 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/07/exploring-caddy/</guid><description>本文永久链接 – https://tonybai.com/2024/11/07/exploring-caddy Go语言诞生十多年来，社区涌现出众多优秀的Web服务器和反向代理解决方案。其中，最引人注目的无疑是Caddy和Traefik。这两者都为开发者和系统管理员提供了更简单、更安全的现代化Web服务器和反向代理部署选项。尽管它们的目标略有不同，Caddy最初旨在满足开发者快速搭建反向代理的需求...</description></item><item><title>Gopher Daily改版了</title><link>https://tonybai.com/2023/08/06/gopherdaily-revamped/</link><pubDate>Sun, 06 Aug 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/08/06/gopherdaily-revamped/</guid><description>本文永久链接 – https://tonybai.com/2023/08/06/gopherdaily-revamped 已经记不得GopherDaily是何时创建的了，翻了一下GopherDaily项目的commit history，才发现我的这个个人项目是2019年9月创建的，最初内容组织很粗糙，但我的编辑制作的热情很高，基本能坚持**每日一发**，甚至节假日也**不停刊**： 该项目的初衷就...</description></item><item><title>使用viper实现yaml配置文件的合并</title><link>https://tonybai.com/2022/09/20/use-viper-to-do-merge-of-yml-configuration-files/</link><pubDate>Tue, 20 Sep 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/09/20/use-viper-to-do-merge-of-yml-configuration-files/</guid><description>本文永久链接 – https://tonybai.com/2022/09/20/use-viper-to-do-merge-of-yml-configuration-files 作为小厂，我们的基础设施还不够完备，项目经理中秋节通知我们的系统近期要上second-to-last stage环境和生产环境，于是从运维人员部署效率方面考量，我们紧急开发了一个一键安装脚本生成工具，这样运维人员便可以利用...</description></item><item><title>使用Go开发Kubernetes Operator：基本结构</title><link>https://tonybai.com/2022/08/15/developing-kubernetes-operators-in-go-part1/</link><pubDate>Mon, 15 Aug 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/08/15/developing-kubernetes-operators-in-go-part1/</guid><description>本文永久链接 – https://tonybai.com/2022/08/15/developing-kubernetes-operators-in-go-part1 &amp;gt; 注：文章首图基于《Kubernetes Operators Explained》修改 几年前，我还称Kubernetes为服务编排和容器调度领域的事实标准，如今K8s已经是这个领域的“霸主”，地位无可撼动。不过，虽然Kubern...</description></item><item><title>小厂内部私有Go module拉取方案（续）</title><link>https://tonybai.com/2022/06/18/the-approach-to-go-get-private-go-module-in-house-part2/</link><pubDate>Sat, 18 Jun 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/06/18/the-approach-to-go-get-private-go-module-in-house-part2/</guid><description>本文永久链接 – https://tonybai.com/2022/06/18/the-approach-to-go-get-private-go-module-in-house-part2 自从去年在公司搭建了内部私有Go module proxy后，我们的私有代理工作得基本良好。按理说，这篇续篇本不该存在:)。 日子一天天过去，Go团队逐渐壮大，空气中都充满了“Go的香气”。 突然有一天，业务...</description></item><item><title>使用Docker Compose构建一键启动的运行环境</title><link>https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose/</link><pubDate>Fri, 26 Nov 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose/</guid><description>本文永久链接 – https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose 如今，不管你是否喜欢，不管你是否承认，微服务架构模式的流行就摆在那里。作为架构师的你，如果再将系统设计成个大单体结构，那么即便不懂技术的领导，都会给你送上几次白眼。好吧，妥协了！开拆！“没吃过猪肉，还没见过...</description></item><item><title>小厂内部私有Go module拉取方案</title><link>https://tonybai.com/2021/09/03/the-approach-to-go-get-private-go-module-in-house/</link><pubDate>Fri, 03 Sep 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/09/03/the-approach-to-go-get-private-go-module-in-house/</guid><description>本文永久链接 – https://tonybai.com/2021/09/03/the-approach-to-go-get-private-go-module-in-house 1. 问题来由 Go 1.11版本引入Go module后，Go命令拉取依赖的公共go module不再是“痛点”。如下图所示： 图：从公司内部经由公共GOPROXY服务拉取公共go module 我们在公司/组织内部仅...</description></item><item><title>使用minio搭建高性能对象存储-第一部分：原型</title><link>https://tonybai.com/2020/03/16/build-high-performance-object-storage-with-minio-part1-prototype/</link><pubDate>Mon, 16 Mar 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/03/16/build-high-performance-object-storage-with-minio-part1-prototype/</guid><description>近期参与了一个项目，该项目有存储大量图片、短视频、音频等非结构化数据的需求。于是我优先在Go社区寻找能满足这类需求的开源项目，minio就这样进入了我的视野。 图：minio logo 其实三年前我就知道了minio，并还下载玩(研)耍(究)了一番，但那时minio的成熟程度与今天相比还是相差较远的(当时需求简单，于是选择了较为熟悉的weedfs)。而如今的minio在github上收获了广泛的关...</description></item><item><title>Kubernetes网络插件（CNI）基准测试的最新结果</title><link>https://tonybai.com/2019/04/18/benchmark-result-of-k8s-network-plugin-cni/</link><pubDate>Thu, 18 Apr 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/04/18/benchmark-result-of-k8s-network-plugin-cni/</guid><description>本文翻译自Alexis Ducastel的文章《Benchmark results of Kubernetes network plugins (CNI) over 10Gbit/s network (Updated: April 2019)》。 本文是我之前的基准测试的最新更新，这次测试在最新版Kubernetes 1.14上运行，其中CNI版本在2019年4月更新。 首先，非常感谢Cilium...</description></item><item><title>使用nomad实现工作负载版本升级</title><link>https://tonybai.com/2019/04/09/upgrade-workload-using-nomad/</link><pubDate>Tue, 09 Apr 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/04/09/upgrade-workload-using-nomad/</guid><description>书接上文。 在《使用nomad实现集群管理和微服务部署调度》一文中，我们介绍了使用nomad进行集群管理和工作负载调度的轻量级方案（相较于Kubernetes方案）。在本文中，我们继续对方案进行延展，介绍一下在nomad集群中工作负载版本升级的一些常用模式和实现方法，包括滚动升级、蓝绿部署和金丝雀部署。 一. 初始状态 ------- 这里我们利用基于tcp+sni路由(listener端口为99...</description></item><item><title>基于consul实现微服务的服务发现和负载均衡</title><link>https://tonybai.com/2018/09/10/setup-service-discovery-and-load-balance-based-on-consul/</link><pubDate>Mon, 10 Sep 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/09/10/setup-service-discovery-and-load-balance-based-on-consul/</guid><description>一. 背景 ----- 随着2018年年初国务院办公厅联合多个部委共同发布了《国务院办公厅关于促进“互联网+医疗健康”发展的意见(国办发〔2018〕26号)》，国内医疗IT领域又迎来了一波互联网医院建设的高潮。不过互联网医院多基于实体医院建设，虽说挂了一个“互联网”的名号，但互联网医院系统也多与传统的院内系统，比如：HIS、LIS、PACS、EMR等共享院内的IT基础设施。 如果你略微了解过国内医...</description></item><item><title>HTTPS服务的Kubernetes ingress配置实践</title><link>https://tonybai.com/2018/06/25/the-kubernetes-ingress-practice-for-https-service/</link><pubDate>Mon, 25 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/25/the-kubernetes-ingress-practice-for-https-service/</guid><description>在公有云被广泛接纳的今天，数据传输安全问题日益凸显，因为在公有云提供商的经典网络（二层互通）中，即便是内部网络通信也要考虑网络嗅探等hack手段，这也是公有云主推所谓“专用网络（二层隔离）”的原因之一。从应用的角度，我们应该尽量通过技术手段保证数据通信的安全性。而目前最常用的方式就是基于SSL/TLS的安全通信方式了，在七层，对应的就是https了。 这样，下面的仅在负载均衡/反向代理入口做加密通...</description></item><item><title>实践kubernetes ingress controller的四个例子</title><link>https://tonybai.com/2018/06/21/kubernetes-ingress-controller-practice-using-four-examples/</link><pubDate>Thu, 21 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/21/kubernetes-ingress-controller-practice-using-four-examples/</guid><description>我之前并未使用过标准的Kubernetes ingress，而是自己实现了一个基于nginx的、类似ingress controller的服务入口管理程序nginx-kit。这个程序会部署到Kubernetes集群中，以Pod形式运行。该Pod由两个Container组成，一个Container放置了一个由脚本启动的nginx；另外一个Container中放置的是一个conf generator程...</description></item><item><title>在Kubernetes 1.10.3上以Hard模式搭建EFK日志分析平台</title><link>https://tonybai.com/2018/06/13/setup-efk-on-kubernetes-1-10-3-in-the-hard-way/</link><pubDate>Wed, 13 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/13/setup-efk-on-kubernetes-1-10-3-in-the-hard-way/</guid><description>在一年多之前，我曾写过一篇文章《使用Fluentd和ElasticSearch Stack实现Kubernetes的集群Logging》，文中讲解了如何在Kubernetes上利用EFK（elastic, fluentd, kibana）搭建一套可用的集中日志分析平台。当时的k8s使用的是1.3.7版本，创建EFK使用的是kubernetes项目中**cluster/addons/fluentd-...</description></item><item><title>在Kubernetes集群上部署高可用Harbor镜像仓库</title><link>https://tonybai.com/2017/12/08/deploy-high-availability-harbor-on-kubernetes-cluster/</link><pubDate>Fri, 08 Dec 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/12/08/deploy-high-availability-harbor-on-kubernetes-cluster/</guid><description>关于基于Harbor的高可用私有镜像仓库，在我的博客里曾不止一次提到，在源创会2017沈阳站上，我还专门以此题目和大家做了分享。事后，很多人通过微博私信、个人公众号或博客评论问我是否可以在Kubernetes集群上安装高可用的Harbor仓库，今天我就用这篇文章来回答大家这个问题。 一、Kubernetes上的高可用Harbor方案 ------------------------- 首先，我可以...</description></item><item><title>定制Go Package的Go Get导入路径</title><link>https://tonybai.com/2017/06/28/set-custom-go-get-import-path-for-go-package/</link><pubDate>Wed, 28 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/28/set-custom-go-get-import-path-for-go-package/</guid><description>近期Go team的组员Jaana B. Dogan，网名：rakyll开源了一个小工具：Go Vanity URLs。这个小工具可以帮助你快速为你的Go package定制Go get的导入路径（同样也是package被使用时的import路径）。 说到go package的go get导入路径，我们最常见和常使用的domain name就是github.com了，比如：beego包的go ge...</description></item><item><title>解决登录Harbor Registry时鉴权失败的问题</title><link>https://tonybai.com/2017/06/15/fix-auth-fail-when-login-harbor-registry/</link><pubDate>Thu, 15 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/15/fix-auth-fail-when-login-harbor-registry/</guid><description>今天在测试之前搭建好的高可用Harbor时，发现了一个问题：使用docker login harbor时，有时成功，有时失败： docker login -u user -p passwd http://hub.my-domain.com:36666 Login Succeeded docker login -u user -p passwd http://hub.my-domain.com:36...</description></item><item><title>一步步打造基于Kubeadm的高可用Kubernetes集群-第二部分</title><link>https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part2/</link><pubDate>Mon, 15 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part2/</guid><description>续接上文。 五、第三步：启动emei、wudang上的apiserver ------------------------------ 跨三个node的etcd cluster已经建成并完成了数据同步，下面进行ha cluster改造的重要一步：启动wudang、emei上的apiserver 1、启动emei、wudang上的apiserver 以shaolin node上的/etc/kuber...</description></item><item><title>Kubernetes集群中Service的滚动更新</title><link>https://tonybai.com/2017/02/09/rolling-update-for-services-in-kubernetes-cluster/</link><pubDate>Thu, 09 Feb 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/02/09/rolling-update-for-services-in-kubernetes-cluster/</guid><description>在移动互联网时代，消费者的消费行为已经“全天候化”，为此，商家的业务系统也要保持7×24小时不间断地提供服务以满足消费者的需求。很难想像如今还会有以“中断业务”为前提的服务系统更新升级。如果微信官方发布公告说：每周六晚23:00~次日凌晨2:00进行例行系统升级，不能提供服务，作为用户的你会怎么想、怎么做呢？因此，各个平台在最初设计时就要考虑到服务的更新升级问题，部署在Kubernetes集群中的...</description></item><item><title>理解Docker容器网络之Linux Network Namespace</title><link>https://tonybai.com/2017/01/11/understanding-linux-network-namespace-for-docker-network/</link><pubDate>Wed, 11 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/11/understanding-linux-network-namespace-for-docker-network/</guid><description>由于2016年年中调换工作的原因，对容器网络的研究中断过一段时间。随着当前项目对Kubernetes应用的深入，我感觉之前对于容器网络的粗浅理解已经不够了，容器网络成了摆在前面的“一道坎”。继续深入理解K8s网络、容器网络已经势在必行。而这篇文章就算是一个重新开始，也是对之前浅表理解的一个补充。 我还是先从Docker容器网络入手，虽然Docker与Kubernetes采用了不同的网络模型：K8s...</description></item><item><title>使用Kubeadm安装Kubernetes</title><link>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm/</link><pubDate>Fri, 30 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm/</guid><description>在《当Docker遇到systemd》一文中，我提到过这两天儿一直在做的一个task：使用kubeadm在Ubuntu 16.04上安装部署Kubernetes的最新发布版本-k8s 1.5.1。 年中，Docker宣布在Docker engine中集成swarmkit工具包，这一announcement在轻量级容器界引发轩然大波。毕竟开发者是懒惰的^0^，有了docker swarmkit，驱动...</description></item><item><title>使用Kubeadm安装Kubernetes-Part2</title><link>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm-2/</link><pubDate>Fri, 30 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm-2/</guid><description>此文为《使用Kubeadm安装Kubernetes》的第二部分。文章第一部分在这里可以看到。 五、weave network for pod 经过上面那么多次尝试，结果是令人扫兴的。Weave network似乎是最后一颗救命稻草了。有了前面的铺垫，这里就不详细列出各种命令的输出细节了。Weave network也有专门的官方文档用于指导如何与kubernetes集群集成，我们主要也是参考它。 1...</description></item><item><title>为Kubernetes集群中服务部署Nginx入口服务</title><link>https://tonybai.com/2016/11/22/deploy-nginx-service-for-the-services-in-kubernetes-cluster/</link><pubDate>Tue, 22 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/22/deploy-nginx-service-for-the-services-in-kubernetes-cluster/</guid><description>这段日子，一直在搞与Kubernetes有关的东东：像什么Kubernetes集群搭建、DNS插件安装和配置、集成Ceph RBD持久卷、Private Registry镜像库访问等，这些都缘于正在开发的一个类PaaS小平台的需要：“平台虽小，五脏俱全”。整个平台由Kubernetes集群承载，对于K8s集群内部的Service来说，目前还欠缺一个服务入口。之前的《Kubernetes集群中的Ng...</description></item><item><title>Kubernetes集群中的Nginx配置热更新方案</title><link>https://tonybai.com/2016/11/17/nginx-config-hot-reloading-approach-for-kubernetes-cluster/</link><pubDate>Thu, 17 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/17/nginx-config-hot-reloading-approach-for-kubernetes-cluster/</guid><description>Nginx已经是互联网IT业界一个无敌的存在，作为反向代理、负载均衡、Web服务器等多种角色的扮演者，Nginx在全球各个互联网公司落地、开花和结果，Ngnix已经成为了支撑全球互联网应用的一个不可获取的组成部分。 在我们的平台中，Nginx同样被拿来作为服务接入的最前端的反向代理，并且我们的Nginx也是作为一个Service跑在我们的Kubernetes集群中的。Ngnix背后的服务众多，服务...</description></item><item><title>Kubernetes集群DNS插件安装</title><link>https://tonybai.com/2016/10/23/install-dns-addon-for-k8s/</link><pubDate>Sun, 23 Oct 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/10/23/install-dns-addon-for-k8s/</guid><description>在上一篇关于Kubernetes集群安装的文章中，我们建立一个最小可用的k8s集群，不过k8s与1.12版本后的内置了集群管理的Docker不同，k8s是一组松耦合的组件组合而成对外提供服务的。除了核心组件，其他组件是以Add-on形式提供的，比如集群内kube-DNS、K8s Dashboard等。kube-dns是k8s的重要插件，用于完成集群内部service的注册和发现。随着k8s安装和管...</description></item><item><title>Docker 1.12 swarm模式下遇到的各种问题</title><link>https://tonybai.com/2016/10/11/some-problems-under-swarm-mode-in-docker-1-12/</link><pubDate>Tue, 11 Oct 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/10/11/some-problems-under-swarm-mode-in-docker-1-12/</guid><description>前段时间，由于工作上的原因，与Docker的联系发生了几个月的中断^\_^，从10月份开始，工作中又与Docker建立了广泛密切的联系。不过这次，Docker却给我泼了一盆冷水:(。事情的经过请允许多慢慢道来。 经过几年的开发，Docker已经成为轻量级容器领域不二的事实标准，应用范围以及社区都在快速发展和壮大。今年的年中，Docker发布了其里程碑的版本Docker 1.12，该版本最大的变动就...</description></item><item><title>理解Unikernels</title><link>https://tonybai.com/2016/05/16/understanding-unikernels/</link><pubDate>Mon, 16 May 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/05/16/understanding-unikernels/</guid><description>当Docker, Inc在今年年初宣布收购Unikernel Systems公司时，Unikernel对大多数技术人员来说还是很陌生的。直到今天，知名问答类网站知乎上也没有以Unikernel为名字的子话题。国内搜索引擎中关于Unikernel的内容很少，实践相关的内容就更少了。Docker收购Unikernel Systems，显然不是为了将这个其未来潜在的竞争对手干掉，而是嗅到了Unikern...</description></item><item><title>使用Filebeat输送Docker容器的日志</title><link>https://tonybai.com/2016/03/25/ship-docker-container-log-with-filebeat/</link><pubDate>Fri, 25 Mar 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/03/25/ship-docker-container-log-with-filebeat/</guid><description>今天我们来说说Docker容器日志。 一、容器日志输出的旧疾及能力演进 Docker容器在默认情况下会将打印到stdout、stderr的 日志数据存储在本地磁盘上，默认位置为/var/lib/docker/containers/{ContainerId} /{ContainerId}-json.log。在老版本Docker中，这种日志记录方式经常被诟病，诸如：日志大小无限制、无法 Rotate（...</description></item><item><title>Caddy，一个用Go实现的Web Server</title><link>https://tonybai.com/2015/06/04/caddy-a-web-server-in-go/</link><pubDate>Thu, 04 Jun 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/06/04/caddy-a-web-server-in-go/</guid><description>这是一个Web Server的时代，apache2与nginx共舞，在追求极致性能的路上，没有最高，只有更高。但这又是一个追求个性化的时代，有些Web Server并没有去挤“Performance提升”这一独木桥，而是有着自己的定位，Caddy就是这样一个开源Web Server。 Caddy的作者Matt Holt在caddy官网以及FAQ中对caddy的目标阐释如下： 其他Web Serve...</description></item><item><title>使用squid搭建http代理</title><link>https://tonybai.com/2012/11/21/setup-http-proxy-with-squid/</link><pubDate>Wed, 21 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/21/setup-http-proxy-with-squid/</guid><description>近期在做一些基础设施搭建的过程中，又遭遇到了公司http代理的问题。主要是很多主机上的工具只支持不带身份鉴权信息的http\_proxy设置，如只 支持诸如：export http\_proxy=&amp;#39;http://10.10.1.1:8090&amp;#39;，而不支持export http\_proxy=&amp;#39;http://tonybai:passwd@10.10.1.1:8090&amp;#39;这种形式的配置。 或是其命令行选项...</description></item><item><title>辩证地看待“重新发明轮子”</title><link>https://tonybai.com/2012/11/02/treat-reinventing-the-wheel-dialectically/</link><pubDate>Fri, 02 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/02/treat-reinventing-the-wheel-dialectically/</guid><description>C程序员骨子里都有一种“重新发明轮子(Reinventing the Wheel)”的特质。在面向对象、组件化流行以及崇尚复用的今天，这种特质似乎总是被认为是反面教材。但伟大的毛主席教导我们：要辩证地看待一切事物， 凡事无绝对。事物都是有两面性的，有好就有坏，有坏就有好。拿“重新发明轮子”这事而言，我们除了看到其弊端外，还要充分领会到其好的一面，不能一棒子打 死，这样才能在特定的场景下作出正确合理...</description></item></channel></rss>