2016-09-02 1 views
0

Ich habe eine Anwendung in RubyOnRails, Proxy von einem NGINX-Server, der hinter einem CDN-Dienst ist. Das CDN hat eine Einschränkung, dass, wenn die Reaktion auf das erste Byte nicht in 60 Sekunden ankommt, die CDN-Server antwortet:Wie zu vermeiden, erste Byte-Timeout mit Nginx

Error 503 first byte timeout

Das Problem ist, dass ich einige Anfragen zu tun haben, die mehr als 60 Sekunden in Anspruch nehmen zu bearbeitenden auf der Rails-Seite. Gibt es eine Möglichkeit, die Antwort zu hacken, einige Bytes zu senden, bevor die Antwort ihre Verarbeitung beendet? Wie?

Antwort

0

Da dies auf CDN gespeichert wird, können wir davon ausgehen, dass es sich um öffentlichen Inhalt handelt, und in diesem Fall ist es ein sehr langer Anfragezeitraum. Sie sollten versuchen, öffentliche Anfragen auf unter eine Sekunde zu beschränken.

Eine Option wäre, ein CDN mit "Push-Zonen" zu verwenden, so dass Sie den Inhalt so langsam wie Sie möchten, und dann den Inhalt zum CDN für die Speicherung in der Nähe des Benutzers schieben. Dies setzt voraus, dass es eine kleine Anzahl von festen Ressourcen anstelle von dynamischem Inhalt mit mehreren Parametern gibt.

Darüber hinaus würde ich Möglichkeiten suchen, um Ihre Reaktionszeit durch Zwischenspeichern und so weiter zu optimieren.

Verwandte Themen