免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1615 | 回复: 1
打印 上一主题 下一主题

linux环境变量(找不到) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-08 10:34 |只看该作者 |倒序浏览
小弟最近在看nginx源码,有一个问题百思不得其解,nginx.c的main中有一个函数ngx_add_inherited_sockets(我认为这个函数很重要,因为里面包含了监听套接字,
而这些套接字的获得将是整个服务器运行的基础),函数中监听套接字的获取用了一个环境变量NGINX,getenv(NGINX_VAR),实际上NGINX_VAR就是“NGINX”,
我通篇搜了项目,只包含C文件哈,都找不到任何setenv和putenv这样设置NGINX_VAR的函数。另外我在shell中echo也没有结果,各种环境变量下,root和我自己的用户。
猜想:
NGINX这个环境变量在脚本文件中设置?

请问哪位兄弟遇到过类似的情况,或者知道问题的所在。

论坛徽章:
0
2 [报告]
发表于 2012-05-14 09:38 |只看该作者
都六天了还没有人来回答,我自己来试着解答一下吧。
实际上真正的socket地址的赋值是在解析配置文件中进行的
这里只是继承父进程的一些特点,具体为什么是环境变量,我也不晓得。
流程大概是这样的,在ngx_init_cycle函数->ngx_conf_parse函数->ngx_conf_handler函数
->cmd->set函数,这里的set函数就包含我们的ngx_http_module中的commands的set函数。
ngx_http_block,里面真正完成了解析socket地址的任务,并存到listening数组中
回复 1# sygspjlsj


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP