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

在AWS上用Docker部署Nginx+FastApi时出现404错误

部署Docker化应用到AWS Elastic Beanstalk后出现Nginx 404错误排查

我按教程部署Docker化应用到AWS Elastic Beanstalk,调试后成功启动了server和Nginx容器,但日志中出现404错误,截图如下:
Nginx 404错误日志

以下是我的docker-compose.yml配置:

version: '3.8'

services:
  server:
    image: **************.us-east-2.amazonaws.com/howdy-api-production:latest
    container_name: howdyserver
    platform: linux/amd64
    restart: always
    environment:
      - RDS_USER=${RDS_USER}
      - RDS_PASSWORD=${RDS_PASSWORD}
      - RDS_SERVER=${RDS_SERVER}
      - RDS_PORT=${RDS_PORT}
      - RDS_DB=${RDS_DB}
      - REDIS_PORT=${REDIS_PORT}
      - SECRET_KEY=${SECRET_KEY}
      - SMTP_SENDER_ADDRESS=${SMTP_SENDER_ADDRESS}
      - SENDGRID_API_KEY=${SENDGRID_API_KEY}    
      - AWS_KEY_ID=${AWS_KEY_ID}
      - AWS_SECRET_KEY=${AWS_SECRET_KEY}
      - AWS_SECRET_KEY=${AWS_SECRET_KEY}
    build: 
        context: ./server
        dockerfile: backend.Dockerfile
    volumes:
      - ./server/app/:/app/
      - public_assets:/app/shared/public
    ports:
      - 8000:8000
    networks:
      - howdynetwork

  nginx:
    image: nginx:alpine
    container_name: howdynginx
    platform: linux/amd64
    restart: always
    ports:
      - 80:80
    depends_on:
      - server
    volumes:
      - public_assets:/app/shared/public
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    networks:
      - howdynetwork

volumes:
   public_assets:

networks:
  howdynetwork:
    driver: bridge

以及我的nginx.conf配置:

upstream api {
  server server:8000;
}

server {
  listen 80;
  # Uncomment this line when you have your own domain for the api.
  # server_name example.org www.example.org;

  client_max_body_size 10m;
  keepalive_timeout 60s;

  access_log /dev/stdout;
  error_log stderr;

  location / {
    try_files $uri @api;
  }

  location @api {
    proxy_pass http://api;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_redirect off;
  }

  location /public {
    alias /app/public;
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  error_page 500 502 503 504 /500.json;
  location = /500.json {
    return 500 '{"statusCode": 500, "message": "Something went wrong."}';
  }
}

我尝试过多种不同的Nginx配置文件,但均出现相同的404错误,请问这是什么原因导致的?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 00:42:41