已知问题

常见问题

1. 端口被占用

netstat -ano | findstr :80
taskkill /PID <进程ID> /F

问题原因: 端口 80 已被其他进程占用。

解决方法

  1. 使用 netstat -ano | findstr :80 查看占用端口 80 的进程
  2. 使用 taskkill /PID <进程ID> /F 停止占用端口 80 的进程

2. 权限问题

以管理员身份运行命令提示符。

问题原因: 当前用户没有足够的权限运行 Nginx。

解决方法: 以管理员身份运行命令提示符。

3. 配置文件错误

nginx -t
type C:\nginx\logs\error.log

问题原因: 配置文件存在语法错误。

解决方法

  1. 使用 nginx -t 测试配置文件
  2. 使用 type C:\nginx\logs\error.log 查看错误日志
  3. 修正配置文件中的错误

4. Nginx 无法启动

tasklist | findstr nginx
taskkill /F /IM nginx.exe

问题原因: Nginx 进程已存在,导致无法启动。

解决方法

  1. 使用 tasklist | findstr nginx 查看 Nginx 进程
  2. 使用 taskkill /F /IM nginx.exe 停止 Nginx 进程

5. 防火墙阻止

netsh advfirewall firewall show rule name="nginx"
netsh advfirewall firewall delete rule name="nginx"

问题原因: 防火墙阻止了 Nginx 的访问。

解决方法

  1. 使用 netsh advfirewall firewall show rule name="nginx" 查看防火墙规则
  2. 使用 netsh advfirewall firewall delete rule name="nginx" 删除防火墙规则

已知限制

  1. 不支持 sendfile:Nginx Windows 版本不支持 sendfile,影响文件传输性能
  2. 不支持多个工作进程:Nginx Windows 版本不支持多个工作进程,无法充分利用多核 CPU
  3. 性能低于 Linux 版本:Nginx Windows 版本性能低于 Linux 版本
  4. 不支持 UDP:Nginx Windows 版本不支持 UDP,无法处理 UDP 流量

最佳实践

  1. 使用 Linux 版本:生产环境推荐使用 Linux 版本
  2. Windows 版本适合开发测试:Windows 版本适合开发测试
  3. 定期更新:定期更新到最新版本
  4. 监控性能:监控性能,及时发现异常
  5. 解决常见问题:及时解决常见问题,避免影响服务