.nginx第一次的启动的时候会创建哪些文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.nginx第一次的启动的时候会创建哪些文件相关的知识,希望对你有一定的参考价值。
请问大家一个问题..今天面试被问到的..nginx第一次的启动的时候会创建哪些文件..我给忘了..
nginx是个多进程web容器,不同的配置下它的启动方式也是不同的,这里我只说说最典型的启动方式。它有1个master进程,和多个worker进程(最优配置的数量与CPU核数相关)。那么,首先我们要找到main函数,它在src/core/nginx.c文件中。谈到源码了,这时我们先简单看下源码的目录结构吧。
nginx主要有下列目录:
src/core,这个目录存放了基础的数据结构像LIST、红黑树、nginx字符串,贯穿始终的一些逻辑结构如ngx_cycle_s、ngx_connection_s等,还有对一些底层操作的封装如log、文件操作、共享内存、内存池等,最后还有个nginx.c这个main启动函数了。
src/event,这个目录下存放与抽象事件相关的结构和钩子函数。nginx是以事件驱动处理流程的,事件自然是整个体系的核心了,这里定义了最核心的ngx_event_s结构。
src/event/modules目录存放了具体的种种事件驱动方式,例如epoll、kqueue、poll、aio、select等,它们通过ngx_event_actions_t结构体中的钩子挂在nginx中。nginx启动时会根据配置来决定使用哪种实现方式。
src/os/unix中存放了unix系统下许多函数调用的UNIX实现。
src/http目录存放到http module的相关实现,这个module负责处理http请求,包括协议的解析以及访问backend server的代码。
src/http/module目录存放http module类型的一些特定用途的module,比如gzip处理加密,图片压缩等。
有个初步了解后,回到main函数中,顺序看看我们感兴趣的事情。它先执行了ngx_time_init,为什么要初始化时间呢?nginx考虑的还是很周到的,取系统时间gettimeofday是系统调用,这意味着,需要发送中断给linux内核,内核需要做进程间切换来处理这个调用。这是一个不能忽视成本的函数。nginx封装了时间函数,这样,每次我们需要处理时间时,并不是调用gettimeofday,而是nginx自己缓存的时间,这样大量减少了系统调用,取当前时间这事可是谁都爱干的。
那么,nginx是怎么维护自己的这个时钟呢?如何保证用户取到的当前时间是有意义的?nginx设计者的出发点是,nginx是事件驱动机制,当一批事件发生时,也就是epoll_wait返回时,会取一次gettimeofday来更新自己的时间,然后调用各个事件对应的处理函数。这些函数都会保证自己是无阻塞的,也就是毫秒级的处理能力,所以,在任何一个事件处理函数中,取到的时间都是之前epoll_wait刚返回时取到的时间,这样,即使拿到的时间慢了几毫秒也无所谓。关键是,每个函数都是无阻塞的,都要迅速的把控制权交还给nginx,这是基本设计原则哈。 参考技术A access.log、error.log别的没想到,下面的继续补充。 参考技术B 留个脚印,我也想知道
清理删除电脑中的垃圾临时文件的方法有哪些
当我们在下载或安装、卸载软件的时候,或者是打开即时消息程序的电子邮件和文件、又或传输文件时,电脑上都会创建临时文件。通常,创建临时文件的程序将在完成时删除它们。但有时,这些临时文件将被保留。保留它们的原因可能很多,例如,程序在完成安装之前可能会中断,或者在重新启动计算机时崩溃。而且在网上冲浪时也会创建临时文件。像InternetExplorer这样的Web浏览器、wps会将缓存保存在硬盘上,以提高以后的浏览速度。
经过一段时间后,如果这些过时的临时文件长时间不被清除,它们可能占用大量硬盘空间,累积硬盘碎片并降低系统性能。删除这些临时文件是安全的,但Windows不允许您删除打开的程序正在使用的任何内容。删除这些文件,可以释放宝贵的硬盘空间用于其他用途。那么我们怎么才能删除临时文件呢,这以上网冲浪产生的临时文件为例:
当我们在线时,Cookies将同时记录我们的身份和其他信息,以便提高下次访问的访问速度。Internet的临时文件也会记录我们访问过的网站。这不仅仅是对我们个人隐私的挑战。更重要的是,如果我们不及时清理这些记录,它们将占用越来越多的磁盘空间。结果,这将降低浏览速度。
●?删除方法
对于某些用户,他们可能不知道此文件夹的位置。如果这些用户没有安装特殊优化软件来删除这些临时文件,他们有办法快速手动删除这些文件吗?在这里,我们想介绍一种方法。
实际上,这种方法的关键在于如何快速导航到临时文件。用户应打开“资源管理器”或“我的电脑”,然后在地址栏中输入“%temp%”。他们需要按“Enter”打开此文件夹,因为按“Enter”后他们可以看到该文件夹??的确切位置。然后,用户可以选择文件并按“删除”将这些文件放入回收站。如果用户按“Shift+Del“,他们可以完全删除硬盘中的文件。
用户打开临时文件的另一种方法是,他们可以先单击“开始/运行”,然后输入“%temp%”。通常,可以安全删除此文件夹中的所有文件。有时,某些文件无法删除,因为它们正在被使用。此时,您可以立即重新启动计算机并将其删除。
另外,上述方法适用于许多Windows系统,如Win2000/98/NT等。虽然不熟悉Windows系统的用户也可以通过这种方式快速手动清除不需要的临时文件,而无需使用任何其他工具。或者,用户可以使用360安全卫士来清理垃圾或痕迹。他们还可以点击浏览器,例如世界之窗,然后选择“清洁计算机”来清除垃圾。如果用户使用Window,他们可以单击“工具-即选项”,也可以单击“工具-即选项-网络属性对话框-浏览历史记录”,然后删除临时文件。更重要的是,他们可以直接右键单击桌面上的InternetExplorer;选择“属性“然后重复以前的行动。
电脑硬盘中的数据被误删除之后,可以使用迷你兔数据恢复软件来进行找回,它可以高效地将硬盘中丢失文件扫描出来,然后进行恢复,效率高,而且不会对原始文件有损坏,具体的恢复步骤,请点击误删除恢复方法,
以上是关于.nginx第一次的启动的时候会创建哪些文件的主要内容,如果未能解决你的问题,请参考以下文章