0%

UNIT是NGINX于2017年推出的Web容器方案,它提供了REST JSON接口动态修改服务配置,目前为Python、Java、Ruby、Perl、NodeJS、GOLang、WebAssembly等语言提供了生产环境级别的高性能Web容器,适用于大规模分布式环境中的微服务管理。从3月11日到4月1日,我分享了关于UNIT的4次课程。


微服务架构中,由于开发语言多样化、服务实例数量多,这就需要一种统一的服务治理方法,将配置更改、服务启停、网络协议适配、日志搜集等通用功能低成本的管理起来。K8S是一种解决方案,而NGINX UNIT针对Web场景也提供了上述功能,而且由于它仅针对Web容器场景,所以性能也更高。这4次视频课程如下:

阅读全文 »

对于许多企业来说,将生产环境转移到Kubernetes集群上,会让应用程序的流量管理变得复杂且具有挑战性。

而Ingress Controller允许通过Yaml编排脚本提供高可用的七层负载均衡、Waf防火墙或者API Gateway,它是Kubernetes集群对外服务的核心组件。

Ingress-nginx是Kubernetes Ingress Controller开源版本中的一种,它使用了NGINX作为反向代理和负载均衡器,生态完善、功能丰富,性能与稳定性也是极优秀的。

这是Nginx开源论坛上的第10季课程,这里我会详细介绍基于Nginx开发的Ingress Controller,包括Kubernetes社区及Nginx官方提供的2种开源Controller,对比它们各自的优缺点。

阅读全文 »

当上游出错时,作为负载均衡的Nginx可以实时更换Server,在客户端无感知的情况下重新转发HTTP请求。这一功能在Nginx指令中称为next upstream,本文将详细介绍其用法及实现原理。

在OSI网络模型中,传输层的TCP协议通过内核提供的系统调用向Nginx反馈错误,表示层的TLS/SSL协议通过openssl库向Nginx返回错误,而应用层的HTTP协议(或者uwsgi、gRPC、CGI、memcached等协议)通过Response的Decode解码流程返回错误。当Nginx能够通过重试解决这些错误时,我们可以使用next upstream机制对客户端隐藏个别上游Server由于宕机、网络异常产生的错误,这可以极大的提升整个分布式系统的可用性

阅读全文 »

接管局通知,个人站点不得有评论功能,原先wordpress+mysql的博客站点(搭建方式见这里)需要重构。干脆基于hexo搭建了静态站点,原先的文章已经迁移了过来,大家的评论只能放弃了。本文介绍hexo静态站点的搭建方法。

wordpress与hexo静态站点的优劣比较

静态站点的优点在于部署简单、性能优异,比如你可以将其部署在免费的github page上,甚至无须购买域名即可对外提供服务(你可以点击russelltao.github.io查看我的github页面)。再比如,公有云提供的静态站点服务,可以将其自动部署到CDN站点上(腾讯云的Hexo部署插件见这里),用户体验非常好。文章、图片等资源的备份也很简单,可以直接连同代码一起存放在git仓库中。

阅读全文 »

负载均衡是Nginx的核心应用场景,本文将介绍官方提供的5种负载均衡算法及其实现细节。

Nginx提供的Scalability,主要由复制扩展(AKF X轴)和用户数据扩展(AKF Z轴)组成。所谓复制扩展,是指上游Server进程是完全相同的,因此可以采用最少连接数、Round Robin轮询、随机选择等算法来分发流量。所谓用户数据扩展,是指每个上游Server只处理特定用户的请求,对这种场景Nginx提供了支持权重的哈希算法,以及支持虚拟节点的一致性哈希算法。

阅读全文 »