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://localhost 或 http://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.conf 中 listen 为其他端口(如 8080)。
  2. 修改配置后不生效:

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

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

    • 日志位于 logs/access.log 和 logs/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 路径格式即可。

相关推荐
像风一样自由20202 分钟前
52.Docker部署大模型应用从本地开发到服务化运行
运维·人工智能·docker·容器·大模型·智能体
sxgzzn10 分钟前
如何利用电缆故障定位在线监测系统提升供电安全?
运维·重构·无人机·开关柜局放在线监测·gis局放在线监测
mengchanmian1 小时前
VSFTP 服务器搭建(Centos)
运维·服务器·centos
别动我齐刘海2 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
不像程序员的程序媛4 小时前
linux常见文本操作命令
linux·运维·服务器
wangbing11254 小时前
开发指南149-IotDB-常用命令
linux·运维·iotdb
Dovis(誓平步青云)4 小时前
常用命令藏得太深?怎么做一个快捷命令坞
运维·前端·自动化·音视频·prometheus
志栋智能5 小时前
运维超自动化的知识管理与传承
运维·自动化
jack186895 小时前
OpenClaw 数据采集与自动化应用场景指南
运维·自动化
小HANN6 小时前
华为云企业网站上云实战|从零搭建高可用WordPress全站架构(ECS+RDS+ELB+弹性伸缩+云监控闭环)
linux·运维·服务器·经验分享