在 Nginx 中,nginx.conf
和 conf.d
目录都用于配置 Nginx 服务器,但它们的用途和使用方式有所不同。下面是对这两者的详细说明:
nginx.conf
nginx.conf
是 Nginx 的主配置文件,通常位于 /etc/nginx/nginx.conf
路径下。这个文件包含了 Nginx 服务器的全局配置和默认的服务器块配置。以下是一个典型的 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 28 29 30 31 32 33 34 35 36 37 38
| user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid;
events { worker_connections 1024; }
http { include /etc/nginx/mime.types; default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048;
include /etc/nginx/conf.d/*.conf;
server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html;
location / { try_files $uri $uri/ =404; } } }
|
在上面的配置中,http
块中包含了一个 include
指令,它会包含 conf.d
目录下的所有 .conf
文件。这样可以将不同的站点或应用的配置分离到不同的文件中,便于管理。
conf.d
目录
conf.d
目录通常用于存放单独的站点或应用的配置文件。这些配置文件会被主配置文件 nginx.conf
包含进来。每个 .conf
文件通常包含一个或多个 server
块,用于定义具体的站点配置。
例如,你可以在 conf.d
目录下创建一个新的文件 minio.conf
来配置 MinIO 的反向代理:
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 28 29 30 31 32 33 34 35
| server { listen 80; server_name your-domain.com;
location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:9000; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; } }
server { listen 443 ssl; server_name your-domain.com;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:9000; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; } }
|
将这个文件保存到 conf.d
目录下,例如 /etc/nginx/conf.d/minio.conf
。
总结
- **
nginx.conf
**:主配置文件,包含全局配置和默认服务器块配置。
conf.d
目录 :用于存放单独站点或应用的配置文件,这些文件会被 nginx.conf
包含进来。
通过这种方式,你可以将不同的站点或应用的配置分离到不同的文件中,便于管理和维护。每次修改 `