nginx安装后怎么开发


本文摘自PHP中文网,作者(*-*)浩,侵删。

得益于nginx的模块化设计,用nginx做模块化开发很方便,但是也带来了代码复杂,难以读懂的问题,首先看一下http模块是怎么准备的,真正处理http请求的函数(或者说是handler,句柄)是ngx_http_wait_request_handler。

1

rev->handler = ngx_http_wait_request_handler;

以这个函数为例,我们来看看http模块是怎么将这个handler挂载好的,如下图

nginx-1.png

ngx_http_block()则就是一个典型的nginx中的module函数了,当整个模块加载的时候就会调用这个函数

挂好了handler,什么时候去调用这个handler呢?

这就要靠nginx的event模块了,event模块实现的功能就是将用来accept的fd注册到epoll中,等有client的请求到来,生成一个新的connfd,然后从连接池里拿出一个连接,将这个连接初始化(也就是把刚刚我们的读写事件的回调等东西写进连接中),然后一并注册到epoll中去,这样,只要这个connfd就绪,就可以根据fd的读写状态调用其相应读写事件的handler了。

来看下event模块是怎么初始化然后监听用来accept_fd的:

nginx-2.png

以上就是nginx安装后怎么开发的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

nginx日志数据如何实时监控

如何运行和控制nginx

nginx常见错误及解决方法介绍

nginx可以启动成功却无法访问

网页出现nginx什么意思

使用systemctl命令启动nginx竟然报错了?什么原因?

nginx与tomcat区别

位运算与nginx性能的联系

nginx怎么添加新模块?

nginx访问日志在哪里

更多相关阅读请进入《nginx》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...