温馨提示×

怎么调试debian nginx

小樊
48
2026-09-15 17:15:26
栏目: 智能运维

在 Debian 上调试 Nginx,一般可以从配置检查、日志查看、进程状态、端口与防火墙、权限问题几个方向入手。下面给你一套实用流程。


一、先确认 Nginx 是否正常运行

systemctl status nginx

如果没启动:

sudo systemctl start nginx
sudo systemctl enable nginx

查看进程:

ps aux | grep nginx

二、检查 Nginx 配置(最重要)

1. 测试配置文件语法

sudo nginx -t

常见错误:

  • 少了分号 ;
  • server_name 写错
  • root 路径不存在
  • location 括号不匹配

2. 查看加载的配置文件

nginx -T

(会打印所有生效配置,包括 include 的)


三、查看日志(调试核心)

错误日志

sudo tail -f /var/log/nginx/error.log

访问日志

sudo tail -f /var/log/nginx/access.log

常见错误示例:

  • Permission denied → 权限问题
  • File not found → root/path 错
  • address already in use → 端口被占用

四、端口与监听问题

查看监听端口

sudo ss -tulnp | grep nginx

或

sudo netstat -tulnp | grep nginx

默认应是:

  • 80(HTTP)
  • 443(HTTPS)

五、防火墙(常被忽略)

Debian 常用 ufw:

sudo ufw status
sudo ufw allow 80
sudo ufw allow 443

如果是云服务器,还要检查安全组。


六、文件权限问题(非常常见)

网页目录示例:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www

SELinux 在 Debian 默认关闭,一般不用管。


七、站点配置调试示例

server {
    listen 80;
    server_name example.com;

    root /var/www/example;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    access_log /var/log/nginx/example.access.log;
    error_log /var/log/nginx/example.error.log;
}

改完配置后:

sudo nginx -t
sudo systemctl reload nginx

八、常见调试技巧

1. 临时开 debug 日志

error_log /var/log/nginx/error.log debug;

然后:

sudo systemctl reload nginx

2. 用 curl 本地测试

curl -I http://localhost
curl -v http://localhost

3. 检查 DNS

ping example.com
nslookup example.com

九、如果你愿意,可以直接贴:

  • nginx -t 输出
  • error.log 报错
  • 你的 server 配置

我可以帮你精确定位问题。

0 踩