Jadi ketika saya secara lokal menguji hal-hal seperti Ajax di aplikasi yang saya tulis, saya sering ingin menambahkan penundaan skrip sisi server menggunakan sleep
pernyataan. Ini membantu mensimulasikan koneksi lambat dll.
Apakah ada cara untuk menentukan perilaku penundaan yang serupa secara langsung di konfigurasi Nginx yang akan berfungsi untuk file HTML datar yang disajikan?
Saya sadar Anda dapat melakukan simulasi penundaan serupa di tingkat jaringan (lihat di sini ) tetapi tampaknya cukup berantakan dan tidak pernah bekerja dengan baik untuk saya.
Jawaban:
Anda harus mencoba modul gema.
sumber
Saya ingin menambahkan jawaban astlock bahwa jika Anda ingin membalas dengan polos
return
maka perhatikan bahwa ada peringatan: Anda harus menggunakanecho
, bukanreturn
arahan standar , setelahecho_sleep
menanggapi dengan penundaan, seperti ini:(Diuji pada openresty / 1.7.10.2)
sumber
Memberikan penjelasan yang lebih rinci tentang bagaimana Anda dapat menggunakan modul gema:
Jika Anda mulai dari konfigurasi dasar, yang memuat file statis dan file PHP, dengan sesuatu seperti ini:
Itu kemudian dapat dikonversi menjadi sesuatu seperti ini untuk menambahkan penundaan pada permintaan statis dan PHP:
Ini jelas dapat dimodifikasi untuk apa pun yang Anda inginkan. Pada dasarnya, pindahkan setiap blok lokasi ke @lokasi. Kemudian gunakan
echo_sleep
danecho_exec
di blok lokasi asli.sumber
Anda dapat mengatur server backend untuk menerima permintaan, lalu menunda untuk merespons di server. Nginx proksi permintaan ke server backend.
sumber
Tidak ada cara (IHMO) untuk menunda respons dari nginx. Anda harus mengolah aplikasi Anda bukan server web Anda untuk mengaktifkan fitur tersebut.
sumber