nginx之配置文件

Nginx配置详解

过apt安装完成Nginx之后,会在 /etc/nginx/ 目录下生成一系列的配置文件。

目录路径如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# /etc/nginx
.
├── conf.d/
├── fastcgi.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── modules-available
├── modules-enabled
│ ├── 50-mod-http-image-filter.conf -> /usr/share/nginx/modules-available/mod-http-image-filter.conf
│ ├── 50-mod-http-xslt-filter.conf -> /usr/share/nginx/modules-available/mod-http-xslt-filter.conf
│ ├── 50-mod-mail.conf -> /usr/share/nginx/modules-available/mod-mail.conf
│ └── 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│ └── default
├── sites-enabled
│ ├── default -> /etc/nginx/sites-available/default
├── snippets
│ ├── fastcgi-php.conf
│ └── snakeoil.conf
├── uwsgi_params
└── win-utf
6 directories, 18 files

nginx.conf

在 nginx 启动时,会加载 /etc/nginx/nginx.conf 配置文件。
打开 nginx.conf 后可以看到,加载的文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
user www-data; # 启动该nginx进程的用户
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf; # nginx模块配置路径

events {
worker_connections 768; # 每个work_process 允许最多连接数
# multi_accept on; # 默认为off,worker process一次只能接收一个新到达的网络连接。 on,可以做到同时接收多个新到达的网络连接
}
http {
# Basic Settings 基础设置
...
# SSL Settings SSL 设置
...
# Logging Settings 日志设置
...
# Gzip Settings gzip设置
...
# 此处往上配置为全局统一配置,建议是不修改,通过 include 中的文件进行修改

##
# Virtual Host Configs # 网站对应配置
##

include /etc/nginx/conf.d/*.conf; # 配置项的位置和文件
include /etc/nginx/sites-enabled/*; # 网站配置文件
}

conf.d

conf.d 文件夹下的文件会由 nginx.conf 文件通过 Virtual Host Configs 下面的配的路径进行引入,文件后缀需要为 .conf 。

sites-available 文件夹

sites-available 中拥有名为 default 的配置文件,打开即可在该文件开头看到 nginx packaging team 的说明:

In most cases, administrators will remove this file from sites-enabled/ and leave it as reference inside of sites-available where it will continue to be updated by the nginx packaging team.

通常情况下,网站管理员会将此文件的链接从 sites-enabled 中删除,并将其作为 sites-available 中其他文件的参考,nginx packaging team 将持续对此文件进行更新。

也就是说,文件夹下的 default 为网站配置文件的参考,由于在 nginx 更新时,default 会一同被更新以展示配置文件的变化,所以在配置网站时,不应该直接修改此文件,需要复制为新文件,再进行修改。

而 sites-available 则是用于存放网站的配置文件,意为可用的网站列表,用于在需要时链接到 sites-enabled 中作为需要启用的网站。

sites-enabled 文件夹

sites-enabled 中则只拥有 sites-available 文件夹下 default 的软链接,结合前面得出:

sites-enabled 下的文件,会作为 nginx.conf 的一部分加载
sites-enabled 下的用于存放 sites-available 中文件的软连接
sites-enabled 意为已开启的网站,将 sites-available 中的配置文件链接到此处,以使配置文件被 nginx 加载。

https://www.digitalocean.com/community/tutorials/how-to-configure-the-nginx-web-server-on-a-virtual-private-server