Pertanyaan Balas dengan 200 dari konfigurasi Nginx tanpa melayani file


Saya telah mengkonfigurasi Apache untuk mengirim kembali tanggapan 200 tanpa melayani file apa pun dengan baris konfigurasi ini

Redirect 200 /hello

Bisakah saya melakukan ini dengan Nginx? Saya tidak ingin melayani file, saya hanya ingin server menanggapi dengan 200 (saya baru saja masuk permintaan).

Saya tahu saya bisa menambahkan file indeks dan mencapai hal yang sama, tetapi melakukannya dalam konfigurasi berarti ada satu hal yang kurang bisa salah.


91
2017-11-01 14:54






Jawaban:


Ya kamu bisa

location / {
    return 200 'gangnam style!';
    # because default content-type is application/octet-stream,
    # browser will offer to "save the file"...
    # if you want to see reply in browser, uncomment next line 
    # add_header Content-Type text/plain;
}

197
2018-03-27 14:05



bagaimana cara menambahkan baris baru ke tanggapan? gangnam\nstyle? - tback
@tback tentu saja, Anda benar - cadmi
Cukup tambahkan baris baru! Arahan konfigurasi Nginx tidak terikat pada garis tunggal, mereka diakhiri dengan titik koma. - Emil Vikström
add_header tidak berfungsi untuk saya karena menambahkan tajuk lain alih-alih mengganti 'Jenis-konten' lama. Dalam tanggapan saya, saya memiliki 2 'Content-type' header: $ curl -v localhost / healthcheck / h1_pio> GET / healthcheck / h1_pio HTTP / 1.1> User-Agent: curl / 7.38.0> Host: localhost> Terima: / > <HTTP / 1.1 200 OK <Tanggal: Selasa, 11 Oktober 2016 13:27:53 GMT <Content-Type: application / octet-stream <Content-Length: 25 <Koneksi: tetap-hidup <Content-Type: aplikasi / json - jmcollin92
@ jmcollin92 yang dapat terjadi jika Anda memiliki default_type yang ada yang dinyatakan di tempat lain. Anda dapat menimpanya dengan menggunakan default_type text/plain; di dalam blok lokasi di tempat add_header direktif. - tjb1982


Anda perlu menggunakan 204 sebagai Nginx tidak akan memungkinkan 200 tanpa tubuh respons. Untuk mengirim 204 Anda cukup menggunakan kembali direktif untuk return 204; di lokasi yang tepat.


18
2017-11-02 11:52





Sesuai definisi kode status, saya yakin Anda menginginkannya menjadi 204, dan bukan 200. 200 harus dengan sumber daya dalam respons, atau saya menduga kebanyakan browser yang waras akan bingung dengan ini. Yang lain yang dapat Anda gunakan adalah 304, yang untuk konten yang di-cache.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html


2
2017-11-01 15:39



Tentu, buatlah 204, bagaimana saya melakukannya? Meskipun saya sangat meragukan browser apapun akan bingung oleh tubuh kosong. - Theo
tubuh kosong masih merupakan respons, dengan objek, seperti indeks kosong.html. Apa yang Anda minta adalah memberikan tanggapan 200 tanpa sumber daya yang melekat padanya (tidak ada file yang dilayani). Adapun bagaimana tepatnya melakukannya pada nginx, saya harus mencari sendiri, saya hanya pernah melakukan ini pada apache, dan saya tidak dapat mengingatnya. - sandroid
304 sepertinya akan mengirim semua sinyal yang salah untuk hal-hal seperti debugging dan pengembalian sementara. - Kzqai