Nginx 的配置文件是模块化的,不同的配置文件承担着不同的功能,下面为你详细介绍常见的配置文件及其作用:
这些文件在/etc/nginx/
目录下:
1、主配置文件
/etc/nginx/nginx.conf
是 Nginx 的核心配置文件,对全局参数进行定义,对其他配置文件进行包含,为整个 Nginx 服务奠定基础。
这篇介绍了主配置文件的具体内容:Nginx的默认主配置文件 “/etc/nginx/nginx.conf“ 解读
2、模块配置文件
/etc/nginx/modules-available/
:存放所有可用 Nginx 模块配置文件。
/etc/nginx/modules-enabled/*.conf
:存放已启用的模块配置文件。
若要启用某个模块,你可以使用 ln -s 命令创建符号链接。
例如,若要启用 http_cache_module 模块,可执行以下命令:
ln -s /etc/nginx/modules-available/http_cache_module.conf /etc/nginx/modules-enabled/
这篇文章将介绍常见的具体模块:(挖坑🕳)
3、虚拟主机配置文件
/etc/nginx/sites-available/
:存放所有虚拟主机的配置文件。虚拟主机允许在同一台服务器上托管多个网站,每个网站都有独立的配置。每个配置文件对应一个网站,定义了网站的域名、端口、根目录、SSL 证书路径等信息。
/etc/nginx/sites-enabled/
:该目录下的文件是 sites-available
目录中对应文件的符号链接,只有 sites-enabled
中的配置文件才会被 Nginx 实际加载和使用。
4、MIME 类型配置文件
/etc/nginx/mime.types
定义了不同文件扩展名对应的 MIME 类型。当 Nginx 向客户端发送文件时,会根据该配置文件设置正确的 MIME 类型,以确保客户端能够正确处理文件。
这篇文章介绍MIME类型的概念:MIME 类型是个什么东西?
5、网关接口配置文件
/etc/nginx/fastcgi.conf
包含了 FastCGI 的一些通用配置指令。
/etc/nginx/fastcgi_params
定义了传递给 FastCGI 进程的相关参数。
/etc/nginx/scgi_params
定义了传递给 SCGI 应用程序的相关参数。
/etc/nginx/uwsgi_params
:用于配置 Nginx 与 uWSGI 服务器之间通信的参数,uuWSGI 是一个快速、可扩展的应用服务器,常用于部署 Python Web 应用,如 Django、Flask 等。
fastcgi :Fast Common Gateway Interface,即快速通用网关接口。
scgi :Simple Common Gateway Interface,即简单通用网关接口。
WSGI:Web Server Gateway Interface,即Web服务器网关接口。
6、代理配置文件
/etc/nginx/proxy_params
:包含了与 Nginx 作为代理服务器时相关的一些参数配置,例如设置代理连接的超时时间、转发请求的头信息等。
7、额外的配置文件
/etc/nginx/conf.d
:主要用于存放额外的配置文件,以此增强配置的模块化和可维护性。这些配置文件会被主配置文件 nginx.conf 包含并加载,从而使 Nginx 服务器应用这些配置。你可以在该目录下创建多个 .conf 后缀的文件,每个文件负责不同的配置任务,例如配置特定的虚拟主机、启用某个模块功能等。
8、可复用的配置片段
/etc/nginx/snippets
:将一些常用的、重复的配置代码片段放在此目录下,以便在多个虚拟主机配置或其他 Nginx 配置文件中重复使用,避免了在每个需要的地方都重复编写相同的代码,提高了配置的可维护性和可读性。
比如,可以创建一个
ssl.conf
文件,包含了与 SSL/TLS 加密相关的通用配置指令,如指定 SSL 证书路径、密钥路径、加密算法等。
这样在多个需要启用 HTTPS 的虚拟主机配置中,都可以通过 include 指令包含这个文件,来统一应用 SSL 配置。