Nginx目录结构
Nginx目录结构
Nginx 的安装目录结构可能会因安装方式(如使用包管理器、源码编译等)和操作系统的不同而有所差异。以下是通过在线安装时,Nginx 默认的目录结构,以及各目录和文件的作用。
yum install nginx
-
查询nginx
[root@Rocky ~]# whereis nginx nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz
可执行文件路径
- /usr/sbin/nginx:这是 Nginx 的可执行文件所在位置。
/usr/sbin
目录一般存放系统级的可执行文件,供系统管理员使用。你可以通过在终端运行该文件来启动、停止、重启 Nginx 服务。例如,使用sudo /usr/sbin/nginx
可以启动 Nginx 服务,sudo /usr/sbin/nginx -s stop
能停止 Nginx 服务。
模块文件路径
- /usr/lib64/nginx:该目录存放着 Nginx 的动态模块文件。这些模块是一些
.so
(共享对象)文件,用于扩展 Nginx 的功能。像ngx_http_image_filter_module.so
模块可用于对 HTTP 请求中的图片进行过滤和处理;ngx_http_perl_module.so
允许在 Nginx 配置中使用 Perl 脚本。
配置文件路径
- /etc/nginx:Nginx 的主配置目录,包含了众多配置文件,用于控制 Nginx 的行为。
- nginx.conf:主配置文件,包含全局配置、事件配置、HTTP 配置等关键信息,是 Nginx 启动时首先读取的配置文件。
- conf.d 目录:通常用于存放虚拟主机的配置文件,Nginx 会自动加载该目录下的所有
.conf
文件,便于对不同的网站或服务进行独立配置。 - fastcgi.conf、fastcgi_params 等文件:用于配置 Nginx 与 FastCGI 服务器的交互,如传递请求参数、设置超时时间等。
资源文件路径
- /usr/share/nginx:存放 Nginx 的共享资源,例如:
- html 目录:是 Nginx 默认的网站根目录,当你访问 Nginx 服务器时,默认会从这个目录下查找并返回相应的文件,如
index.html
是默认的首页文件。 - modules 目录:存放与 Nginx 模块相关的配置文件,和
/usr/lib64/nginx
目录下的模块文件相配合,对模块的功能进行具体配置。
- html 目录:是 Nginx 默认的网站根目录,当你访问 Nginx 服务器时,默认会从这个目录下查找并返回相应的文件,如
手册页路径
- /usr/share/man/man3/nginx.3pm.gz 和 /usr/share/man/man8/nginx.8.gz:这两个是 Nginx 的手册页文件。在 Linux 系统中,
man
命令用于查看程序的帮助文档,man
手册分为不同的章节,man3
通常是库函数和系统调用的手册,man8
主要是系统管理命令和守护进程的手册。你可以使用man 3 nginx
或man 8 nginx
来查看相应的帮助信息。
- /usr/sbin/nginx:这是 Nginx 的可执行文件所在位置。
-
树状显示目录结构
[root@Rocky ~]# tree /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/lib64/nginx └── modules ├── ngx_http_image_filter_module.so ├── ngx_http_perl_module.so ├── ngx_http_xslt_filter_module.so ├── ngx_mail_module.so └── ngx_stream_module.so /etc/nginx ├── conf.d │ └── vhost.conf ├── default.d ├── fastcgi.conf ├── fastcgi.conf.default ├── fastcgi_params ├── fastcgi_params.default ├── koi-utf ├── koi-win ├── mime.types ├── mime.types.default ├── nginx.conf ├── nginx.conf.default ├── scgi_params ├── scgi_params.default ├── uwsgi_params ├── uwsgi_params.default └── win-utf /usr/share/nginx ├── html │ ├── 404.html │ ├── 50x.html │ ├── bbs │ │ ├── index.html │ │ └── logs │ │ └── access_bbs.log │ ├── index.html │ ├── nginx-logo.png │ ├── poweredby.png │ └── www │ ├── index.html │ └── logs │ └── access_www.log └── modules ├── mod-http-image-filter.conf ├── mod-http-perl.conf ├── mod-http-xslt-filter.conf ├── mod-mail.conf └── mod-stream.conf 9 directories, 35 files
/usr/lib64/nginx/modules
- 该目录用于存放 Nginx 的动态模块文件,这些模块扩展了 Nginx 的功能。
- ngx_http_image_filter_module.so:用于对 HTTP 请求中的图片进行过滤和处理,例如调整图片大小、裁剪、添加水印等。
- ngx_http_perl_module.so:允许在 Nginx 配置中使用 Perl 语言编写脚本,以实现更灵活的请求处理和业务逻辑。
- ngx_http_xslt_filter_module.so:用于对 HTTP 响应中的 XML 数据进行 XSLT 转换,将 XML 数据转换为其他格式,如 HTML。
- ngx_mail_module.so:提供了对邮件协议(如 SMTP、POP3、IMAP)的支持,使 Nginx 可以作为邮件服务器的前端,实现邮件的代理、过滤等功能。
- ngx_stream_module.so:主要用于处理 TCP 和 UDP 流,支持对非 HTTP 协议的流量进行代理、转发和处理,例如用于代理 MySQL、Redis 等数据库连接。
/etc/nginx
- Nginx 的主配置目录,包含了 Nginx 服务器的各种配置文件,Nginx 在启动时会读取这些文件来确定如何运行。
- conf.d:该目录用于存放用户自定义的 Nginx 虚拟主机配置文件。每个配置文件通常对应一个或多个网站的配置,例如
vhost.conf
文件可能包含了特定域名的服务器配置,如服务器名称、端口、SSL 设置、请求处理规则等。 - default.d:这个目录用于存放一些默认的配置片段或备用配置文件,通常在主配置文件中通过包含指令(
include
)来引用,以提供一些默认的配置选项或覆盖某些全局配置。 - fastcgi.conf和fastcgi.conf.default:用于配置 FastCGI 相关的参数,如 FastCGI 服务器的地址、端口、请求头和响应头的设置等。
.default
文件通常是默认的配置模板,fastcgi.conf
是实际使用的配置文件,管理员可以根据需要修改fastcgi.conf
来调整 FastCGI 的行为。 - fastcgi_params和fastcgi_params.default:包含了传递给 FastCGI 进程的参数,这些参数用于在 Nginx 与 FastCGI 服务器之间传递信息,例如客户端的请求头、服务器变量等。同样,
.default
文件是默认模板,fastcgi_params
是可修改的实际配置文件。 - koi-utf和koi-win:这两个文件用于字符编码转换,
koi-utf
用于将 KOI8-R 编码转换为 UTF-8 编码,koi-win
用于将 KOI8-R 编码转换为 Windows-1251 编码,主要用于处理不同字符编码的文本数据。 - mime.types和mime.types.default:定义了 Nginx 如何识别不同类型的文件,根据文件的扩展名来确定其对应的 MIME 类型。MIME 类型用于在 HTTP 响应中正确地标识文件的内容类型,以便客户端能够正确地处理和显示文件。
.default
文件是默认的 MIME 类型定义,mime.types
可以根据实际需求进行修改和扩展。 - nginx.conf和nginx.conf.default:Nginx 的主配置文件,包含了 Nginx 服务器的全局配置信息,如进程数、运行用户、错误日志路径、HTTP 服务器配置等。
.default
文件是默认的主配置模板,nginx.conf
是实际使用的配置文件,管理员可以通过修改nginx.conf
来定制 Nginx 的行为。 - scgi_params和scgi_params.default:与
fastcgi_params
类似,用于配置 SCGI(Simple Common Gateway Interface)相关的参数,用于在 Nginx 与 SCGI 服务器之间传递信息。 - uwsgi_params和uwsgi_params.default:用于配置 uWSGI 相关的参数,uWSGI 是一个应用服务器,常用于 Python Web 应用的部署。这些参数用于在 Nginx 与 uWSGI 服务器之间传递请求和响应信息。
/usr/share/nginx
- 该目录用于存放 Nginx 的一些共享资源,如 HTML 文件、模块配置文件等。
- html:默认情况下,Nginx 会将该目录下的文件作为 HTTP 服务器的文档根目录,用于存放网站的静态文件,如 HTML 页面、图片、CSS 样式表、JavaScript 脚本等。
- 404.html和50x.html:分别是用于显示 404(页面未找到)和 50x(服务器内部错误等)错误页面的 HTML 文件,当客户端请求的页面不存在或服务器发生错误时,Nginx 会返回相应的错误页面给客户端。
- bbs和www:这两个子目录可能是用于存放不同网站或不同应用的相关文件,每个子目录下都有
index.html
文件作为默认首页,logs
目录用于存放访问日志文件,如access_bbs.log
和access_www.log
分别记录了对bbs
和www
应用的访问记录。
- modules:该目录下的文件是 Nginx 模块的配置文件,与
/usr/lib64/nginx/modules
中的动态模块文件相对应,用于配置这些模块的行为和参数。- mod-http-image-filter.conf:用于配置
ngx_http_image_filter_module
模块,定义了图片过滤相关的参数和规则。 - mod-http-perl.conf:用于配置
ngx_http_perl_module
模块,指定了 Perl 脚本的路径、加载顺序等配置信息。 - mod-http-xslt-filter.conf:用于配置
ngx_http_xslt_filter_module
模块,设置了 XSLT 转换的相关参数和规则。 - mod-mail.conf:用于配置
ngx_mail_module
模块,包含了邮件服务器相关的配置信息,如 SMTP、POP3、IMAP 协议的设置。 - mod-stream.conf:用于配置
ngx_stream_module
模块,定义了 TCP 和 UDP 流处理的相关参数和规则。
- mod-http-image-filter.conf:用于配置
- 该目录用于存放 Nginx 的动态模块文件,这些模块扩展了 Nginx 的功能。