nginx conf.d stream.d
嗯,用户让我总结一下这篇文章的内容,控制在100个字以内,而且不需要用“文章内容总结”之类的开头。直接写描述就行。 首先,我需要通读整篇文章,了解主要讲了什么。看起来这篇文章是在比较不同Linux发行版(Alpine和Debian)上安装Nginx后的配置和结构差异。 文章中提到了使用Docker运行Alpine和Debian的不同命令,安装Nginx和tree工具,然后用tree命令展示了/etc/nginx目录的结构。接着,对比了两个发行版中Nginx配置文件的include路径位置,发现Alpine中的配置更合理,特别是在stream模块的支持上。 用户还提到Nginx官方仓库的配置可能与Linux分支的官方包有所不同,这可能对用户理解配置差异有帮助。 现在,我需要将这些要点浓缩到100字以内。重点包括:不同发行版(Alpine和Debian)的Nginx配置差异、include路径的位置、stream模块的支持以及官方仓库的影响。 可能的总结结构:对比Alpine和Debian中的Nginx配置结构,特别是include路径的位置差异,以及stream模块的支持情况。官方仓库的影响也需提及。 最后,确保语言简洁明了,直接描述内容。 </think> 文章对比了在Alpine和Debian系统上安装Nginx后的配置文件结构及路径差异。Alpine版本中`include /etc/nginx/conf.d/*.conf;`位于nginx.conf根节点下,而Debian版本中位于http节点下。同时,Alpine版本的stream模块支持更合理。 2026-4-1 08:9:10 Author: dyrnq.com(查看原文) 阅读量:4 收藏

nginx on alpine

docker run -it --rm alpine:edge sh -c "apk add nginx-mod-stream tree; tree /etc/nginx;"
(1/4) Installing pcre2 (10.47-r0)
(2/4) Installing nginx (1.28.3-r0)
  Executing nginx-1.28.3-r0.pre-install
  Executing nginx-1.28.3-r0.post-install
(3/4) Installing nginx-mod-stream (1.28.3-r0)
(4/4) Installing tree (2.3.2-r0)
Executing busybox-1.37.0-r30.trigger
OK: 10.9 MiB in 21 packages
/etc/nginx
├── conf.d
│   └── stream.conf
├── fastcgi.conf
├── fastcgi_params
├── http.d
│   └── default.conf
├── mime.types
├── modules
│   └── 10_stream.conf
├── nginx.conf
├── scgi_params
├── stream.d
└── uwsgi_params

5 directories, 9 files

# Includes files with directives to load dynamic modules.
include /etc/nginx/modules/*.conf;

# Include files with config snippets into the root context.
include /etc/nginx/conf.d/*.conf;


http {
    # Includes virtual hosts configs.
    include /etc/nginx/http.d/*.conf;
}
# /etc/nginx/conf.d/stream.conf

stream {
    # Specifies the main log format.
    log_format main '$remote_addr [$time_local] '
            '$protocol $status $bytes_sent $bytes_received '
            '$session_time "$upstream_addr" '
            '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

    access_log /var/log/nginx/stream.log main;

    # Includes servers configs.
    include stream.d/*.conf;
}

nginx on debian13

docker run -it --rm debian:13 sh -c "sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources;apt update;apt install nginx-full tree -y; tree /etc/nginx;"


/etc/nginx
|-- conf.d
|-- fastcgi.conf
|-- fastcgi_params
|-- koi-utf
|-- koi-win
|-- mime.types
|-- modules-available
|-- modules-enabled
|   |-- 50-mod-http-auth-pam.conf -> /usr/share/nginx/modules-available/mod-http-auth-pam.conf
|   |-- 50-mod-http-dav-ext.conf -> /usr/share/nginx/modules-available/mod-http-dav-ext.conf
|   |-- 50-mod-http-echo.conf -> /usr/share/nginx/modules-available/mod-http-echo.conf
|   |-- 50-mod-http-geoip2.conf -> /usr/share/nginx/modules-available/mod-http-geoip2.conf
|   |-- 50-mod-http-subs-filter.conf -> /usr/share/nginx/modules-available/mod-http-subs-filter.conf
|   |-- 50-mod-http-upstream-fair.conf -> /usr/share/nginx/modules-available/mod-http-upstream-fair.conf
|   |-- 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf
|   `-- 70-mod-stream-geoip2.conf -> /usr/share/nginx/modules-available/mod-stream-geoip2.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

7 directories, 22 files

http {
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

nginx

ocker run -it --rm nginx:1.28.3-alpine sh -c "apk add tree; tree /etc/nginx;cat /etc/nginx/nginx.conf"
(1/1) Installing tree (2.2.1-r0)
Executing busybox-1.37.0-r30.trigger
OK: 58.9 MiB in 73 packages
/etc/nginx
├── conf.d
│   └── default.conf
├── fastcgi.conf
├── fastcgi_params
├── mime.types
├── modules -> /usr/lib/nginx/modules
├── nginx.conf
├── scgi_params
└── uwsgi_params

3 directories, 7 files

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
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;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}
docker run -it --rm nginx:trixie sh -c "sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources;apt update; apt install tree -y; tree /etc/nginx;cat /etc/nginx/nginx.conf"
Get:1 http://mirrors.ustc.edu.cn/debian trixie InRelease [140 kB]
Get:2 http://mirrors.ustc.edu.cn/debian trixie-updates InRelease [47.3 kB]
Get:3 http://mirrors.ustc.edu.cn/debian-security trixie-security InRelease [43.4 kB]
Get:4 http://mirrors.ustc.edu.cn/debian trixie/main amd64 Packages [9671 kB]
Get:5 http://mirrors.ustc.edu.cn/debian trixie-updates/main amd64 Packages [5412 B]
Get:6 http://mirrors.ustc.edu.cn/debian-security trixie-security/main amd64 Packages [114 kB]
Fetched 10.0 MB in 3s (3288 kB/s)                    
1 package can be upgraded. Run 'apt list --upgradable' to see it.
Installing:                     
  tree

Summary:
  Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 1
  Download size: 59.4 kB
  Space needed: 132 kB / 699 GB available

Get:1 http://mirrors.ustc.edu.cn/debian trixie/main amd64 tree amd64 2.2.1-1 [59.4 kB]
Fetched 59.4 kB in 0s (209 kB/s)
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 79, <STDIN> line 1.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC entries checked: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.40.1 /usr/local/share/perl/5.40.1 /usr/lib/x86_64-linux-gnu/perl5/5.40 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.40 /usr/share/perl/5.40 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 8, <STDIN> line 1.)
debconf: falling back to frontend: Teletype
Selecting previously unselected package tree.
(Reading database ... 6706 files and directories currently installed.)
Preparing to unpack .../tree_2.2.1-1_amd64.deb ...
Unpacking tree (2.2.1-1) ...
Setting up tree (2.2.1-1) ...
/etc/nginx
|-- conf.d
|   `-- default.conf
|-- fastcgi_params
|-- mime.types
|-- modules -> /usr/lib/nginx/modules
|-- nginx.conf
|-- scgi_params
`-- uwsgi_params

3 directories, 6 files

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
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;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

每个(Linux分支的官方)的Nginx包可能略有不同

同时(Nginx官方)也会有仓库,默认的配置和路径也可能和(Linux分支的官方)打的包不同

对比发现include /etc/nginx/conf.d/*.conf; 在alpine 中被提到了nginx.conf的根上, 而其他在http节点下,存在较大差异

Nginx支持stream转发的能力, alpine的这种配置更为合理


文章来源: https://dyrnq.com/nginx-conf-d-stream-d/
如有侵权请联系:admin#unsafe.sh