在AWS上用Docker部署Nginx+FastApi时出现404错误
部署Docker化应用到AWS Elastic Beanstalk后出现Nginx 404错误排查
我按教程部署Docker化应用到AWS Elastic Beanstalk,调试后成功启动了server和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
相关产品推荐
相关产品推荐

