Nginx的安装与配置(window系统)

目录

[一、下载 Nginx](#一、下载 Nginx)

[二、安装 Nginx](#二、安装 Nginx)

[三、启动 Nginx](#三、启动 Nginx)

[四、Nginx 常用命令(Windows 命令行)](#四、Nginx 常用命令(Windows 命令行))

[五、配置 Nginx(核心步骤)](#五、配置 Nginx(核心步骤))

[1. 部署静态网站](#1. 部署静态网站)

[2. 反向代理(解决前端跨域)](#2. 反向代理(解决前端跨域))

[3. 多站点配置(基于端口)](#3. 多站点配置(基于端口))

六、常见问题解决

[七、设置 Nginx 开机自启(可选)](#七、设置 Nginx 开机自启(可选))


在 Windows 系统中安装 Nginx 相对简单,主要通过官方压缩包手动部署。以下是详细的安装和配置步骤:

一、下载 Nginx

  1. 访问 Nginx 官方下载https://nginx.org/en/download.html
  2. 选择 Stable version (稳定版,推荐生产环境使用),下载 Windows 版本的压缩包(如 nginx-1.24.0.zip)。

二、安装 Nginx

  1. 将下载的 nginx-xxx.zip 压缩包解压到一个目录(建议路径不要包含中文或空格,避免冲突),例如:C:\nginx-1.24.0(解压后目录结构如下):

    bash 复制代码
    nginx-1.24.0/
    ├── conf/          # 配置文件目录(核心)
    ├── docs/          # 文档
    ├── html/          # 默认网站根目录(存放静态文件)
    ├── logs/          # 日志文件
    ├── temp/          # 临时文件
    └── nginx.exe      # 主程序

三、启动 Nginx

  1. 通过命令行启动(推荐,便于操作):

    • 按下 Win + R,输入 cmd 打开命令提示符。

    • 切换到 Nginx 安装目录: cmd

      javascript 复制代码
      cd C:\nginx-1.24.0
    • 启动 Nginx: cmd

      javascript 复制代码
      start nginx

      (启动后无明显提示,可通过任务管理器查看 nginx.exe 进程确认是否运行)

  2. 通过软件程序启动

打开下载的文件位置,找到nginx.exe,双击启动即可。

3. 验证启动成功 :打开浏览器访问 http://localhosthttp://127.0.0.1,若看到 "Welcome to nginx!" 页面,说明启动成功。

四、Nginx 常用命令(Windows 命令行)

在 Nginx 安装目录下执行以下命令:

命令 作用
start nginx 启动 Nginx 服务
nginx -s stop 强制停止 Nginx(快速关闭,可能丢失数据)
nginx -s quit 优雅停止 Nginx(处理完当前请求后关闭)
nginx -s reload 重新加载配置文件(修改配置后执行)
nginx -s reopen 重新打开日志文件(日志切割时使用)
nginx -v 查看 Nginx 版本
nginx -t 检查配置文件语法是否正确

五、配置 Nginx(核心步骤)

Nginx 的主配置文件为 conf/nginx.conf,以下是常用配置场景:

1. 部署静态网站

假设静态文件(HTML/CSS/JS)放在 C:\www\mywebsite 目录,修改 conf/nginx.conf 中的 server 块:

nginx

javascript 复制代码
server {
    listen       80;       # 监听 80 端口
    server_name  localhost;  # 域名(本地测试用 localhost)

    # 网站根目录(指向你的静态文件目录)
    root   C:/www/mywebsite;  # 注意 Windows 路径用 / 或 \\
    index  index.html index.htm;  # 默认首页

    # 访问日志(可选)
    access_log  logs/mywebsite_access.log;
    error_log   logs/mywebsite_error.log;
}

修改后执行 nginx -s reload 生效,访问 http://localhost 即可看到你的网站。

2. 反向代理(解决前端跨域)

例如将前端项目的 /api 请求代理到后端服务 http://127.0.0.1:3000

javascript 复制代码
server {
    listen       80;
    server_name  localhost;

    # 前端项目根目录
    root   C:/www/frontend;
    index  index.html;

    # 代理 API 请求
    location /api/ {
        proxy_pass http://127.0.0.1:3000/;  # 后端服务地址(末尾 / 确保路径正确)
        proxy_set_header Host $host;        # 传递主机名
        proxy_set_header X-Real-IP $remote_addr;  # 传递客户端真实 IP
    }

    # 单页应用(Vue/React)路由兼容(避免刷新 404)
    location / {
        try_files $uri $uri/ /index.html;
    }
}
3. 多站点配置(基于端口)

通过不同端口部署多个网站,在 nginx.conf 中添加多个 server 块:

javascript 复制代码
# 第一个站点(80 端口)
server {
    listen       80;
    server_name  localhost;
    root   C:/www/site1;
    index  index.html;
}

# 第二个站点(8080 端口)
server {
    listen       8080;
    server_name  localhost;
    root   C:/www/site2;
    index  index.html;
}

重启 Nginx 后,可通过 http://localhost(80 端口)和 http://localhost:8080 访问不同站点。

六、常见问题解决

  1. 端口被占用导致启动失败

    • 错误表现:启动后浏览器无法访问,logs/error.log 中提示 bind() to 0.0.0.0:80 failed (10013: ...)
    • 解决:关闭占用 80 端口的程序(如 IIS、Apache 或其他服务),或修改 nginx.conflisten 为其他端口(如 8080)。
  2. 修改配置后不生效

    • 必须执行 nginx -s reload 重新加载配置,若仍不生效,可先 nginx -s quit 停止,再 start nginx 重启。
    • 或者在任务管理器中关闭Nginx任务,在执行一次nginx.exe程序
  3. 中文路径或文件名导致 404

    • Nginx 对 Windows 中文路径支持较差,建议网站目录和文件名避免中文和空格。
  4. 日志文件过大

    • 日志位于 logs/access.loglogs/error.log,可定期手动删除或配置日志切割工具。

七、设置 Nginx 开机自启(可选)

Windows 中默认不会开机自启 Nginx,可通过以下方法配置:

  1. 创建一个批处理文件 start_nginx.bat,内容:

    bat

    javascript 复制代码
    @echo off
    cd C:\nginx-1.24.0
    start nginx
  2. 将批处理文件放入系统启动目录:

    • 按下 Win + R,输入 shell:startup,打开启动文件夹。
    • start_nginx.bat 复制到该文件夹,重启电脑后 Nginx 将自动启动。

通过以上步骤,即可在 Windows 系统中完成 Nginx 的安装、配置和基本使用。如需更复杂的功能(如 HTTPS、负载均衡),配置方式与 Linux 类似,只需修改 nginx.conf 并适配 Windows 路径格式即可。

相关推荐
熙xi.3 小时前
DHT11温湿度传感器Linux驱动开发完整流程
linux·运维·驱动开发
Yyyy4824 小时前
Ubuntu部署 Kubernetes1.23
linux·运维·ubuntu
人工智能训练4 小时前
在 Ubuntu 系统中利用 conda 创建虚拟环境安装 sglang 大模型引擎的完整步骤、版本查看方法、启动指令及验证方式
linux·运维·服务器·人工智能·ubuntu·conda·sglang
王道长服务器 | 亚马逊云5 小时前
AWS Auto Scaling:自动扩容,让服务器像呼吸一样灵活
运维·网络·自动化·云计算·aws
小蜗牛爱远行5 小时前
服务器和docker容器时间不一致相关问题
运维·服务器·docker
孙同学要努力5 小时前
《Linux篇》进程控制——进程创建(写时拷贝)、进程终止(退出码,exit,_exit)
linux·运维·服务器
Hali_Botebie5 小时前
服务器上用Slurm 管理训练bash 脚本任务
运维·服务器·bash
咕噜企业签名分发-淼淼5 小时前
app分发平台哪个好点?手机app应用内测分发平台支持负载均衡的重要性
运维·智能手机·负载均衡
一个儒雅随和的男子5 小时前
Nginx‌如何配置负载均衡,并使用对不同同负载均衡算法进行配置
运维·nginx·负载均衡