
Ich versuche, im Falle eines 502-Fehlers statische Dateien aus dem S3-Bucket abzurufen.
So habe ich Nginx für Anfragen konfiguriert:
error_page 502 = @static;
location / {
index index.php;
try_files $uri $uri/ /index.php;
# return 502;
proxy_intercept_errors on;
}
location @static{
rewrite ^/name/(.*) ^/bucket_name/$1 break;
proxy_pass http://s3.amazonaws.com;
}
Der Fehler 502 wird gesendet, wenn Nginx eine große Last nicht bewältigen kann.
Wenn ich jetzt die Anweisung „return 502“ auskommentiere und die Anweisung try_files kommentiere, ist alles in Ordnung und die Daten werden korrekt vom S3-Bucket bereitgestellt.
Aber wenn ich für den oben angegebenen Code die Last auf der Website mithilfe von loader.io erhöhe (ich habe überprüft, dass es einen 502-Fehler generiert), erhält der Browser einen 403-Fehler (403 Forbidden).
Und diese freundliche Nachricht wird im Browser angezeigt,
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>some_string</RequestId>
<HostId>
something
</HostId>
Und wenn ich „return 502“ auskommentiere, „try_files-Anweisung“ kommentiere und die Last erhöhe, stellt s3 die Dateien immer noch korrekt bereit.
Irgendeine Idee, warum ich aufgrund hoher Auslastung einen 403-Fehler erhalte, aber keinen solchen Fehler, wenn ich manuell 502 zurückgebe? Gibt es außerdem eine andere alternative Methode, um bei hoher Auslastung (502-Fehler) Daten aus dem S3-Bucket abzurufen? Sind manuell gesendete 502-Fehler und solche aufgrund hoher Auslastung dasselbe?