ubuntu中的nginx.conf和windows中的nginx.conf内容对比

在 Ubuntu 和 Windows 系统中,Nginx 的 
nginx.conf
 核心配置逻辑完全一致(比如 HTTP 块、Server 块、Location 块的语法规则),但默认配置文件的 结构和内容组织存在差异,这也是你在 Ubuntu 中可能没直观找到 
Server
 块的主要原因 ——Ubuntu 下的 Nginx 为了更灵活地管理多站点,将 
Server
 块拆分到了独立文件中,而非直接写在主配置 
nginx.conf
 里。

一、核心差异:
Server
 块的存放位置不同

无论是 Ubuntu 还是 Windows,
Server
 块都是 Nginx 配置虚拟主机(站点)的核心,但系统默认的配置拆分方式不同:

对比维度 Ubuntu 系统(Nginx 官方 / APT 安装) Windows 系统(Nginx 压缩包安装)
主配置文件
/etc/nginx/nginx.conf
(主配置,不直接包含 
Server
 块)

nginx安装目录/conf/nginx.conf
(主配置,默认包含 1 个 
Server
 块)

Server
 块位置
拆分到独立文件:

/etc/nginx/sites-available/
(站点配置文件,含 
Server
 块)

/etc/nginx/sites-enabled/
(已启用站点的软链接)
直接写在 
nginx.conf
 的 
http
 块内(默认有一个监听 80 端口的 
Server
 块)
配置拆分逻辑 遵循 Linux 软件 “模块化管理” 习惯,多站点时只需在 
sites-available
 新增文件,再软链接到 
sites-enabled
 即可启用,无需修改主配置
单文件管理,多站点时需在 
nginx.conf
 的 
http
 块内新增多个 
Server
 块,或通过 
include
 引入外部文件

二、Ubuntu 中如何找到 / 修改 
Server
 块配置?

如果你在 Ubuntu 的 
/etc/nginx/nginx.conf
 里没看到 
Server
 块,是因为主配置通过 
include
 指令引入了外部的站点配置文件,具体步骤如下:

1. 查看主配置的 
include
 指令

打开 Ubuntu 的主配置文件:

bash


sudo nano /etc/nginx/nginx.conf

在 
http
 块的末尾,会看到类似这样的配置(核心是引入 
sites-enabled
 目录下的所有文件):

nginx



http {
    # 其他配置(如日志、连接数、MIME类型等)...
 
    # 引入已启用的站点配置(这里包含了所有 Server 块)
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

这意味着:Ubuntu 的 
Server
 块不写在主配置里,而是放在 
sites-enabled
 目录下的文件中(
sites-enabled
 里的文件是 
sites-available
 目录的软链接,用于控制站点是否启用)。

2. 查看默认的 
Server
 块配置

Ubuntu 安装 Nginx 后,默认会创建一个示例站点配置文件,路径为:

bash



# 查看可用站点的配置(含 Server 块)
cat /etc/nginx/sites-available/default

打开后能看到完整的 
Server
 块,例如默认监听 80 端口的配置:

nginx



server {
    listen 80 default_server;  # 监听 80 端口,设为默认站点
    listen [::]:80 default_server;
 
    root /var/www/html;  # 静态文件根目录(默认放 index.html 的地方)
    index index.html index.htm index.nginx-debian.html;
 
    server_name _;  # 匹配所有未指定 server_name 的请求
 
    location / {
        # 访问根路径时的处理逻辑(默认尝试找 index 文件,找不到则 404)
        try_files $uri $uri/ =404;
    }
}
3. 如何修改 
Server
 块?

如果需要修改站点配置(比如改端口、根目录、反向代理),直接编辑 
sites-available
 下的文件即可:

编辑默认站点配置:

bash


sudo nano /etc/nginx/sites-available/default

修改 
Server
 块内容(例如添加反向代理,参考你之前的登录接口问题):

nginx



server {
    listen 80;  # 保持监听 80 端口
    server_name 192.168.1.190;  # 明确指定站点的 IP/域名
 
    # 静态文件根目录(前端文件放在这里)
    root /var/www/your-frontend;  # 替换为你的前端项目路径
    index index.html;
 
    # 反向代理:将 /blzk-stage-api 开头的请求转发到后端
    location /blzk-stage-api/ {
        proxy_pass http://127.0.0.1:8080/;  # 替换为你的后端服务地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
 
    # 处理前端单页应用(如 Vue/React,避免刷新 404)
    location / {
        try_files $uri $uri/ /index.html;
    }
}

验证配置语法是否正确:

bash


sudo nginx -t

重启 Nginx 使配置生效:

bash


sudo systemctl restart nginx

三、总结:Ubuntu 与 Windows 配置的核心一致性

虽然 
Server
 块的存放位置不同,但 配置语法、指令含义完全相同,例如:

监听端口的 
listen
 指令;匹配域名的 
server_name
 指令;处理请求的 
location
 块;反向代理的 
proxy_pass
 指令等。

你在 Windows 中写的 
Server
 块配置,只要调整好路径(比如 Ubuntu 静态文件路径是 
/var/www/
,Windows 是 
C:/nginx/html/
),直接复制到 Ubuntu 的 
/etc/nginx/sites-available/default
 中就能使用,无需修改语法。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
外来户的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容