You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下Nginx无访问/错误日志问题排查

排查Nginx+uWSGI+Django+Docker环境下日志未生成的问题

Nginx配置排查

  • 确认配置文件中明确指定日志路径,示例配置:
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    
    路径需与Docker挂载的宿主机目录对应,且容器内Nginx进程(通常为www-data用户)拥有该路径的写入权限。
  • 验证配置语法有效性:在容器内执行nginx -t,若无误执行nginx -s reload重载配置。
  • 检查反向代理规则是否正确,确保请求能转发到uWSGI,否则Nginx不会生成日志。

uWSGI配置排查

  • 检查uWSGI配置中的日志参数,示例:
    logto = /var/log/uwsgi/uwsgi.log
    
    确认容器内日志目录存在且uWSGI进程有写入权限。
  • 用uwsgitop或容器内进程查看命令(如ps aux)确认uWSGI正常运行并接收请求。

Docker挂载与权限排查

  • 核对docker-compose.yml或docker run命令中的挂载规则,示例:
    volumes:
      - ./nginx/logs:/var/log/nginx
      - ./uwsgi/logs:/var/log/uwsgi
    
    确保宿主机侧日志目录已创建,且权限设置允许容器进程写入(可执行chmod 755 ./nginx/logs调整)。
  • 进入容器查看日志路径状态:执行docker exec -it <容器名> ls /var/log/nginx,若目录不存在,需在Dockerfile中提前创建或调整挂载逻辑。

Django日志配置排查

  • 检查settings.py中的LOGGING配置,确保已开启文件日志输出,示例:
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'file': {
                'level': 'INFO',
                'class': 'logging.FileHandler',
                'filename': '/var/log/django/app.log',
            },
        },
        'loggers': {
            'django': {
                'handlers': ['file'],
                'level': 'INFO',
                'propagate': True,
            },
        },
    }
    
    确认容器内该日志路径的写入权限。

额外排查步骤

  • 测试请求是否到达服务器:执行curl localhost:8000,观察容器内进程是否有响应。
  • 手动在容器内创建测试日志文件:执行docker exec -it <容器名> touch /var/log/nginx/test.log,若失败则说明权限不足,需调整目录权限或进程运行用户。

内容的提问来源于stack exchange,提问作者Danniel_Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 15:03:25