基于Nginx和Consul构建高可用及自动发现的Docker服务架构

本文讲的是基于Nginx和Consul构建高可用及自动发现的Docker服务架构【编者的话】本文对于Docker和Consul Template以及Nginx如何结合使用做了较为详细的介绍。【上海站|3天烧脑式微服务架构训练营】培训内容包括:DevOps、微服务、Spring Cloud、Eurek...

《深入理解Nginx:模块开发与架构解析》一导读

前 言 当我试图在产品的关键位置设计一个高性能Web服务器时,我选择使用成熟的Nginx。选择它的理由为:首先,它对服务器性能上的挖掘已经达到了很高水平,它能尽量使不同的硬件(包括网卡、硬盘、不同的CPU核心)并发运行,同时软件中又没有阻塞进程使之睡眠的代码,从性能上来说,它可以挑战任何服务器。其次...

Nginx企业级Web服务实战

11 课时 |
655 人已学 |
免费

Linux Web服务器Nginx搭建与配置

5 课时 |
13872 人已学 |
免费
开发者课程背景图

《深入理解Nginx:模块开发与架构解析》一3.9 用C++语言编写HTTP模块

3.9 用C++语言编写HTTP模块 Nginx及其官方模块都是由C语言开发的,那么能不能使用C++语言来开发Nginx模块呢?C语言是面向过程的编程语言,C++则是面向对象的编程语言,面向对象与面向过程的优劣这里暂且不论,存在即合理。当我们由于各种原因需要使用C++语言实现一个Nginx模块时(例...

《深入理解Nginx:模块开发与架构解析》一3.10 小结

3.10 小结 本章讲述了如何开发一个基本的HTTP模块,这里除了获取请求的包体外没有涉及异步处理问题。通过本章的学习,读者应该可以轻松地编写一个简单的HTTP模块了,既可以获取到用户请求中的任何信息,也可以发送任意的响应给用户。当然,处理方法必须是快速、无阻塞的,因为Nginx在调用例子中的ngx...

《深入理解Nginx:模块开发与架构解析》一3.8 将磁盘文件作为包体发送

3.8 将磁盘文件作为包体发送 上文讨论了如何将内存中的数据作为包体发送给客户端,而在发送文件时完全可以先把文件读取到内存中再向用户发送数据,但是这样做会有两个缺点:为了不阻塞Nginx,每次只能读取并发送磁盘中的少量数据,需要反复持续多次。Linux上高效的sendfile系统调用不需要先把磁盘中...

《深入理解Nginx:模块开发与架构解析》一3.7 发送响应

3.7 发送响应 请求处理完毕后,需要向用户发送HTTP响应,告知客户端Nginx的执行结果。HTTP响应主要包括响应行、响应头部、包体三部分。发送HTTP响应时需要执行发送HTTP头部(发送HTTP头部时也会发送响应行)和发送HTTP包体两步操作。本节将以发送经典的“Hello World”为例来...

《深入理解Nginx:模块开发与架构解析》一3.6 处理用户请求

3.6 处理用户请求 本节介绍如何处理一个实际的HTTP请求。回顾一下上文,在出现mytest配置项时,ngx_http_mytest方法会被调用,这时将ngx_http_core_loc_conf_t结构的handler成员指定为ngx_http_mytest_handler, 另外,HTTP框架...

《深入理解Nginx:模块开发与架构解析》一3.5 定义自己的HTTP模块

3.5 定义自己的HTTP模块 上文中我们了解了定义HTTP模块时需要定义哪些成员以及实现哪些方法,但在定义HTTP模块前,首先需要确定自定义的模块应当在什么样的场景下开始处理用户请求,也就是说,先要弄清楚我们的模块是如何介入到Nginx处理用户请求的流程中的。从2.4节中的HTTP配置项意义可知,...

《深入理解Nginx:模块开发与架构解析》一3.4 HTTP模块的数据结构

3.4 HTTP模块的数据结构 定义HTTP模块方式很简单,例如: ngx_module_t ngx_http_mytest_module; 其中,ngx_module_t 是一个Nginx模块的数据结构(详见8.2节)。下面来分析一下Nginx模块中所有的成员,如下所示: typedef stru...

《深入理解Nginx:模块开发与架构解析》一3.3 如何将自己的HTTP模块编译进Nginx

3.3 如何将自己的HTTP模块编译进Nginx Nginx提供了一种简单的方式将第三方的模块编译到Nginx中。首先把源代码文件全部放到一个目录下,同时在该目录中编写一个文件用于通知Nginx如何编译本模块,这个文件名必须为config。它的格式将在3.3.1节中说明。这样,只要在configur...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

{"cardStyle":"productCardStyle","productCode":"aliyun","productCardInfo":{"productTitle":"部署Nginx并通过Ingress暴露和监控服务","productDescription":"在阿里云容器服务(后简称ACK)集群中通过YAML文件快速部署一个Nginx应用并通过Nginx Ingress暴露和监控服务,结合使用ACK、日志服务、专有网络搭建业务部署运维方案。","productContentLink":"https://www.aliyun.com/solution/tech-solution/nginx_ingress","isDisplayProductIcon":true,"productButton1":{"productButtonText":"方案详情","productButtonLink":"https://www.aliyun.com/solution/tech-solution/nginx_ingress"},"productButton2":{"productButtonText":"一键部署","productButtonLink":"https://help.aliyun.com/document_detail/2400022.html"},"productButton3":{"productButtonText":"查看更多技术解决方案","productButtonLink":"https://www.aliyun.com/solution/tech-solution/"},"productPromotionInfoBlock":[{"$id":"0","productPromotionGroupingTitle":"解决方案推荐","productPromotionInfoFirstText":"MSE实现全链路灰度","productPromotionInfoFirstLink":"https://www.aliyun.com/solution/tech-solution/iflgbomse","productPromotionInfoSecondText":"云上经典架构","productPromotionInfoSecondLink":"https://www.aliyun.com/solution/tech-solution/habwoc"}]},"activityCardInfo":{"activityTitle":"","activityDescription":"","cardContentBackgroundMode":"LightMode","activityContentBackgroundImageLink":"","activityCardBottomInfoSelect":"activityPromotionInfoBlock"}}
相关电子书
更多
《Nginx 代理系统常用手册》
CentOS Nginx PHP JAVA 多语言镜像使用手
CentOS Nginx PHP JAVA多语言镜像使用手册
立即下载 立即下载 立即下载

Nginx架构相关内容