# Natal Rapor Sunucu Timeout Ayarları

20-25 sayfalık natal yorum raporu oluşturmak **1–2 dakika** sürebilir. Sunucu varsayılan timeout'ları (genellikle 60 saniye) bu süreyi aşarsa istek kesilir ve kullanıcı "Rapor oluşturulurken bir hata oluştu" mesajını görür.

## Log’dan timeout nasıl anlaşılır?

- **Başarılı istek:** `Natal report request started` → `OpenAI Long Report - İstek gönderiliyor` → `OpenAI Long Report - HTTP yanıt alındı` → `OpenAI Long Report - Başarılı` → `Natal report tamamlandı`.
- **Sunucu timeout (Nginx/PHP-FPM kesmesi):** `Natal report request started` ve `OpenAI Long Report - İstek gönderiliyor` var, **ondan sonra hiç log yok** (ne "HTTP yanıt alındı" ne "Exception"). Bu durumda PHP süreci dışarıdan sonlandırılmıştır; **Nginx `fastcgi_read_timeout` veya PHP-FPM `request_terminate_timeout` değerlerini artırın** (aşağıya bakın).
- **Uygulama/API hatası:** `OpenAI Long Report - Exception` veya `OpenAI Long Report - HTTP hatası` log’da görünür; mesaj ve `error_classification` alanı sebebi gösterir.

## Gerekli Ayarlar

### 1. Nginx (FastCGI)

`nginx.conf` veya site config içinde `location ~ \.php$` bloğuna ekleyin:

```nginx
fastcgi_read_timeout 420;
proxy_read_timeout 420;
```

Tam örnek:

```nginx
location ~ \.php$ {
    fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_read_timeout 420;   # 7 dakika
    fastcgi_send_timeout 420;
}
```

### 2. PHP-FPM

Pool config dosyasında (örn. `/etc/php/8.2/fpm/pool.d/www.conf`):

```ini
request_terminate_timeout = 420
```

Veya sadece bu site için:

```ini
; www.conf içinde
request_terminate_timeout = 420
```

### 3. php.ini (opsiyonel)

```ini
max_execution_time = 420
```

> Uygulama içinde `set_time_limit(420)` zaten ayarlı; sunucu `request_terminate_timeout` veya nginx `fastcgi_read_timeout` önceliklidir.

## Kontrol

Değişikliklerden sonra servisleri yeniden başlatın:

```bash
sudo systemctl reload nginx
sudo systemctl reload php8.2-fpm
```
