Wenn ich also lokal Dinge wie Ajax in Apps teste, die ich schreibe, füge ich häufig mithilfe einer sleep
Anweisung eine Verzögerung bei serverseitigen Skripten hinzu . Es hilft, langsame Verbindungen usw. zu simulieren.
Gibt es eine Möglichkeit, ein ähnliches Verzögerungsverhalten direkt in der Nginx-Konfiguration anzugeben, das für die von ihr bereitgestellten flachen HTML-Dateien funktionieren würde?
Ich bin mir bewusst, dass Sie eine ähnliche Verzögerungssimulation auf Netzwerkebene durchführen können (siehe hier ), aber es scheint ziemlich chaotisch zu sein und hat bei mir nie sehr gut funktioniert.
Antworten:
Sie sollten ein Echo-Modul ausprobieren.
quelle
Ich möchte hinzufügen astlock Antwort , dass , wenn Sie mit einem einfachen antworten möchten ,
return
dann beachten Sie, dass es ein Nachteil ist: Sie haben Gebrauchecho
, keinereturn
Standardrichtlinie, nachecho_sleep
reagieren mit einer Verzögerung, wie folgt aus :(Geprüft auf openresty / 1.7.10.2)
quelle
Geben Sie eine ausführlichere Erklärung, wie Sie das Echo-Modul verwenden können:
Wenn Sie von einer Basiskonfiguration aus starten, werden statische Dateien und PHP-Dateien mit etwa folgendem Inhalt geladen:
Das kann dann in so etwas umgewandelt werden, um eine Verzögerung sowohl für statische als auch für PHP-Anforderungen hinzuzufügen:
Dies kann natürlich für alles, was Sie wollen, geändert werden. Verschieben Sie grundsätzlich jeden Positionsblock in eine benannte @Lage. Verwenden Sie dann
echo_sleep
undecho_exec
im ursprünglichen Adressblock.quelle
Sie können einen Back-End-Server so einrichten, dass er die Anforderung empfängt, und die Antwort auf dem Server verzögern. Nginx Proxy die Anfrage an den Backend-Server.
quelle
Es gibt keine Möglichkeit (IHMO), die Antwort von Nginx zu verzögern. Sie müssen Ihre Anwendung und nicht Ihren Webserver überarbeiten, um diese Funktion zu aktivieren.
quelle