server {
    listen 80;
    server_name 162.43.14.33;

    # Basic認証
    auth_basic "X Auto Platform";
    auth_basic_user_file /etc/nginx/.htpasswd;

    # ヘルスチェックは認証不要
    location = /api/health {
        auth_basic off;
        proxy_pass http://127.0.0.1:8000;
    }

    # noVNC のリバースプロキシ設定 (HTTP静的ファイル用)
    location /novnc/ {
        proxy_pass http://127.0.0.1:6080/;
        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;
    }

    # noVNC WebSocket プロキシ (相対パス用)
    location /novnc/websockify {
        proxy_pass http://127.0.0.1:6080/websockify;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
        auth_basic off;
    }

    # noVNC WebSocket プロキシ (絶対パス用)
    location /websockify {
        proxy_pass http://127.0.0.1:6080/websockify;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
        auth_basic off;
    }

    # 全リクエストをuvicornに転送
    location / {
        proxy_pass http://127.0.0.1:8000;
        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;

        # WebSocket対応
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # タイムアウト延長（長時間投稿処理用）
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
        proxy_connect_timeout 60s;

        # 大きいファイルアップロード対応
        client_max_body_size 100M;
    }
}
