Вот моя конфигурация Nginx:
Код: Выделить всё
server {
listen 443 ssl http2;
server_name backend.example.com;
ssl_certificate /etc/letsencrypt/live/backend.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/backend.example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location /neurotalk/ {
proxy_pass http://127.0.0.1:8443; # Proxying to Uvicorn
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# CORS headers
add_header 'Access-Control-Allow-Origin' 'https://frontend.example.com';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';
# Additional settings
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_redirect off;
# Disable buffering for streaming responses
proxy_buffering off;
proxy_request_buffering off;
}
}
Код: Выделить всё
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
origins = [
"https://frontend.example.com",
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
Я пробовал следующее:
- Дважды проверил написание доменного имени.
- Очистил кеш браузера.
- Перезапустил Nginx и приложение FastAPI.
Может ли кто-нибудь помочь мне понять, почему эта конфигурация * работает, но не работает с конкретным доменом?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ic-domains