为什么 nginx 日志没有写入 default-error.log?

为什么 nginx 日志没有写入 default-error.log?

在/etc/nginx/sites-available/默认代理:


server {
    listen xxx.xx.xxx.xxx:80 default_server;
    proxy_read_timeout 200s;
    access_log /var/log/nginx/default-access.log;
    error_log /var/log/nginx/default-error.log;

    include static.conf;

    location / {
        root              /var/www/web/sites;
        try_files         /$host/ @default_host;
        proxy_pass        http://127.0.0.1:80;
        proxy_redirect    http://127.0.0.1:80/ /;
    }

    location @default_host {
        proxy_pass        http://127.0.0.2:80;
        proxy_redirect    http://127.0.0.2:80/ /;
    }

    location @mass_hosting {
        root              /var/www/web/sites;
        try_files         /$host/ @default_host;
        proxy_pass        http://127.0.0.1:80;
        proxy_redirect    http://127.0.0.1:80/ /;
    }
}

server {
    listen xxx.xx.xxx.xxx:443 ssl;
    server_name domain.ru;

    proxy_read_timeout 200s;
    access_log /var/log/nginx/default-access.log;
    error_log /var/log/nginx/default-error.log;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_certificate     /var/www/web/ssl/domain.ru.crt;
    ssl_certificate_key /var/www/web/ssl/domain.ru.key;

    location / {
        root              /var/www/web/sites;
        try_files         /$host/ @default_host;
        proxy_pass        https://127.0.0.1:443;
        proxy_redirect    https://127.0.0.1:443/ /;
    }

    location @default_host {
        proxy_pass        http://127.0.0.2:443;
        proxy_redirect    http://127.0.0.2:443/ /;
    }

    location @mass_hosting {
        root              /var/www/web/sites;
        try_files         /$host/ @default_host;
        proxy_pass        http://127.0.0.1:443;
        proxy_redirect    http://127.0.0.1:443/ /;
    }
}

在 access-default.log 文件中,条目正常,但 default-error.log 文件为空。为什么? ps 检查问题是否已修复的最简单方法是什么? 调用 404 错误并再次检查日志?

答案1

  • 确保检查你的 access.log 中是否存在这些缺失的 404(这可能是由于 error_page 或 try_files 指令造成的)
  • 确保“log_not_found”未设置为“off”[1]
  • 确保您使用的上游没有返回指示 404 的响应,同时返回 200 状态代码(这将在访问日志中记录为 200)

[1]https://nginx.org/en/docs/http/ngx_http_core_module.html#log_not_found

相关内容