
nginx
陶辉
www.taohui.pub
展开
-
在这里,NGINX 创始人 Igor Sysoev 将亲述 NGINX 的诞生史
2020 年 5 月 20 日,一场 NGINX 在国内的盛会、一个所有 NGINX 用户 & 爱好者朝圣的最佳场所,F5 线上技术峰会 – NGINX 专场将以线上直播的形式面向所有开发者召开。届时各位 NGINX 开发者心目中的偶像 NGINX 创始人 Igor Sysoev 以及国内 NGINX 技术专家陶辉老师将空降大会现场,从 NGXIN 创始人的成长经历出发,帮助每一位开发者...原创 2020-04-30 08:46:31 · 3271 阅读 · 0 评论 -
巧用 Nginx 实现大规模分布式集群的高可用性
本文是我对2019年GOPS深圳站演讲的文字整理。这里我希望带给各位读者的是,如何站在整个互联网背景下系统化地理解Nginx,因为这样才能解决好大流量分布式网络所面临的高可用问题。标题里有“巧用”二字,何谓巧用?同一个问题会有很多种解决方案,但是,各自的约束性条件却大不相同。巧用就是找出最简单、最适合的方案,而做到这一点的前提就是必须系统化的理解Nginx!本文分四个部分讲清楚如何达到这一...原创 2019-08-09 08:28:17 · 3550 阅读 · 0 评论 -
《Nginx核心知识100讲》资料
与《深入理解Nginx:模块开发与架构解析》这本书不同,这门课只是从使用层面来讲Nginx,不会讲模块开发,不会讲源码,但会讲到Nginx架构、模块实战、性能优化(包括Linux系统)、Openresty等。课程知识点架构图如下:所有课件、编译参数、nginx.conf配置文件参见github:https://github.com/russelltao/geektime-nginx最...原创 2019-01-16 15:22:57 · 10928 阅读 · 0 评论 -
CSDI2018广州关于《Nginx》的分享(附文字速录与PPT)
应百林哲笑含的邀请,于2018.6.9号至7.1号前往广州白云国际会议中心参加《CSDI Summit 中国软件研发管理行业技术峰会》。会上认识了很多互联网一线老师是最大的收获:本次我分享的主题是《兼顾灵活与性能的nginx》:意外的惊喜是CSDI的讲师证书非常精美:最后附上本次演讲的PPT内容:兼顾灵活与性能的nginx以下为文字速录内容:大家好,我是杭州市智链达数据有限公司的联合创始人和CTO...原创 2018-07-11 14:29:55 · 2311 阅读 · 2 评论 -
Udp的反向代理:nginx
在实时性要求较高的特殊场景下,简单的UDP协议仍然是我们的主要手段。UDP协议没有重传机制,还适用于同时向多台主机广播,因此在诸如多人会议、实时竞技游戏、DNS查询等场景里很适用,视频、音频每一帧可以允许丢失但绝对不能重传,网络不好时用户可以容忍黑一下或者声音嘟一下,如果突然把几秒前的视频帧或者声音重播一次就乱套了。使用UDP协议作为信息承载的传输层协议时,就要面临反向代理如何选择的挑战。通常我们...原创 2018-04-19 11:05:44 · 5869 阅读 · 1 评论 -
阿里云搭建wordpress生产级CMS网站实践
搭建cms内容站点时,wordpress是一个很好的选择,不用做任何开发就可以通过配置、插件获得丰富的功能。用docker容器技术部署运维都非常简单,特别是对于wordpress这种我们无需做任何开发的组件。而出于低成本考虑,公有云都是一个最佳选择,这里我选择的是阿里云。为了提速,wordpress前会有一个nginx作为负载均衡和web加速服务器,将静态内容都由nginx处理。出于高可靠性,我选原创 2017-01-09 19:26:41 · 5358 阅读 · 1 评论 -
taohui.org.cn建站历程
用云服务器+linux+nginx+python+django+mysql+memcached搭了个人网站,用万网域名加阿里云备案完成,使用多说作为评论系统,以RST作为博客录入格式。欢迎大家光临。原创 2014-02-27 19:12:35 · 9370 阅读 · 7 评论 -
推荐我的新书《深入理解Nginx:模块开发与架构解析》
http://www.china-pub.com/STATIC/zt_mb/zt_huodong_2013_3.asp?filename=2013_jsj_nginx_20130401目录《深入理解nginx:模块开发与架构解析》 前 言 第一部分 nginx能帮我们做什么 第1章 研究nginx前的准备工作 / 2 1.1 nginx是什么 / 2原创 2013-04-09 09:23:20 · 44520 阅读 · 45 评论 -
nginx启动期做了哪些事
nginx是个多进程web容器,不同的配置下它的启动方式也是不同的,这里我只说说最典型的启动方式。它有1个master进程,和多个worker进程(最优配置的数量与CPU核数相关)。那么,首先我们要找到main函数,它在src/core/nginx.c文件中。谈到源码了,这时我们先简单看下源码的目录结构吧。nginx主要有下列目录:src/core,这个目录存放了基础的数据结构原创 2011-12-30 17:28:34 · 5718 阅读 · 3 评论 -
nginx module 开发谈(1)
nginx是什么?可能很多人不是很了解,除非是做WEB服务器开发的朋友才可能涉猎,而且如果不懂C语言,又或者对WEB SERVER性能要求不高,也是没必要去研究它的。说到这里,大家想必已经知道,nginx就是一个高性能的WEB SERVER,它的工作就像apache, tomcat一样。那么已经有apache这样的成熟产品了,nginx又有何存在必要呢?下面说下它的特点,各位就明白为何ng原创 2010-05-31 14:21:00 · 13069 阅读 · 0 评论 -
nginx module 开发谈(2)
nginx的module开发很弱,首先它不是采用动态库的形式被主进程加载,而是要求module的源码必须和nginx的源码一起编译。我是第一次见到这么BT的家伙,呵呵。所以呢,对module开发者来说,nginx就是一个开发平台,可以把它理解为在nginx这个“OS”上用C语言开发application,而且要遵循nginx的框架。既然是平台,那么像其他OS一样,我们需要搞明白几点:1、程序入原创 2010-05-31 17:19:00 · 8345 阅读 · 6 评论 -
nginx module 开发谈(3)
2、HTTP框架继续上面这个例子,比如当nginx收到一个http请求时,我的module需要处理这个请求,那么我应该怎么做?实际这个问题还要再细分。如果是希望nginx收到完整的HTTP请求,再交给我的module处理?又或者只需要接收到完整的http header就给我呢?我把接收完header就交给module处理的code列下,再说下它的处理流程。首先我要在ngx_XXX_in原创 2010-05-31 18:05:00 · 8146 阅读 · 1 评论 -
nginx module 开发谈(4)
3、对HTTP body的处理上面我们已经开始处理http request header了,接下来,如果请求中有body内容,那么需要处理body了。这里你肯定不会想要去阻塞式的读取body吧?body的长度可大可小,网络环境也巨复杂,只要有阻塞操作肯定玩完。Nginx这时已经准备了一个现成的读取body的非阻塞模式给用户,就是ngx_http_read_client_request_body原创 2010-05-31 18:46:00 · 11018 阅读 · 4 评论 -
nginx module开发5 (完结)
upstream机制Nginx提供的upstream机制,是nginx设计理念的忠实体现。异步、无阻塞,这是nginx的追求,任何对这种设计思想的违反,都会导致nginx达不到它预期的性能,包括nginx提供的fastCGI也是如此。 Upstream到底用来干什么呢?就是nginx在正常的请求处理过程中,需要访问其他SERVER,这时,nginx提供了这样的机制,把底层的http原创 2010-08-19 14:13:00 · 10339 阅读 · 7 评论 -
设计模式在C语言中的应用--读nginx源码
市面上的“设计模式“书籍文章,皆针对Java/C++/C#等面向对象语言,似乎离开了面向对象的种种特性,设计模式就无法实现,没有用武之地了。是这样吗?设计模式的概念是从建筑领域引入的,本身从没歧视过面向过程编程语言,它只是对一类问题的普遍解决方案而已。面向对象语言因为有类、多态等特点,使得开发者们容易达到:隐藏细节、封装变化,而这与设计模式的目的比较一致,所以大师们爱把设计模式与面向对原创 2012-02-01 17:20:54 · 33458 阅读 · 19 评论 -
“惊群”,看看nginx是怎么解决它的
在说nginx前,先来看看什么是“惊群”?简单说来,多线程/多进程(linux下线程进程也没多大区别)等待同一个socket事件,当这个事件发生时,这些线程/进程被同时唤醒,就是惊群。可以想见,效率很低下,许多进程被内核重新调度唤醒,同时去响应这一个事件,当然只有一个进程能处理事件成功,其他的进程在处理该事件失败后重新休眠(也有其他选择)。这种性能浪费现象就是惊群。惊群通常发生在ser原创 2012-01-16 15:35:20 · 60807 阅读 · 35 评论 -
nginx module开发利器:subrequest
nginx是个高性能web server,很多时候我们会把它当成reverse proxy或者web server container使用,但有时我们也会开发它的第三方module,因为module才能完全使用nginx的全事件驱动、无阻塞调用机制,充分使用系统资源,达到SERVER最大处理吞吐量。在开发nginx module时,我们最有可能遇到的一件事就是,在处理一个请求时,我们需原创 2012-01-05 16:27:53 · 9452 阅读 · 0 评论