سؤال الرد باستخدام 200 من تهيئة Nginx دون تقديم ملف


لقد قمت بتكوين Apache لإرسال رد 200 مرة دون تقديم أي ملف باستخدام خط التكوين هذا

Redirect 200 /hello

هل يمكنني القيام بذلك مع Nginx؟ لا أريد تقديم ملف ، أريد فقط أن يستجيب الخادم لـ 200 (سأقوم فقط بتسجيل الطلب).

أعلم أنه يمكنني إضافة ملف فهرس وتحقيق نفس الشيء ، ولكن القيام بذلك في التهيئة يعني أن هناك شيئًا واحدًا أقل يمكن أن يحدث بشكل خاطئ.


93
2017-11-01 14:54


الأصل




الأجوبة:


نعم تستطيع

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;
}

202
2018-03-27 14:05



كيف أقوم بإضافة سطر جديد للاستجابة؟ gangnam\nstyle؟ - tback
@ بالطبع ، بالطبع أنت - cadmi
ما عليك سوى إضافة السطر الجديد! لا ترتبط توجيهات تكوين Nginx بخطوط مفردة ، بل إنها منتهية بفاصلة منقوطة. - Emil Vikström
لا يعمل add_header بالنسبة لي لأنه يضيف رأسًا آخر بدلاً من استبدال "نوع المحتوى" القديم. في إجابتي لدي عناوين 2 'نوع المحتوى': $ curl -v localhost / healthcheck / h1_pio> GET / healthcheck / h1_pio HTTP / 1.1> User-Agent: curl / 7.38.0> المضيف: localhost> قبول: / > <HTTP / 1.1 200 OK <Date: Tue، 11 Oct 2016 13:27:53 GMT <Content-Type: application / octet-stream <Content-Length: 25 <Connection: keep-alive <Content-Type: application / سلمان - jmcollin92
@ jmcollin92 يمكن أن يحدث إذا كان لديك نوع default_type موجود معلن في مكان آخر. يمكنك تجاوزها باستخدام default_type text/plain; داخل كتلة الموقع بدلا من add_header التوجيه. - tjb1982


لا تحتاج إلى استخدام 204 لأن Nginx لن تسمح بـ 200 مع عدم وجود نص استجابة. لإرسال 204 يمكنك ببساطة استخدام توجيه العودة إلى return 204; في المكان المناسب.


18
2017-11-02 11:52





حسب تعريفات رمز الحالة ، أعتقد أنك تريد أن تكون 204 ، وليس 200. 200 يجب أن تكون مع مورد في الاستجابة ، أو أشك في أن معظم المتصفحات العاقل ستشتتت من هذا. الطريقة الأخرى التي يمكنك استخدامها هي 304 ، وهي للمحتوى المخبأ.

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


2
2017-11-01 15:39



بالتأكيد ، اجعله 204 ، كيف أفعل ذلك؟ على الرغم من أنني أشك كثيرا في أي متصفح سيتم الخلط من قبل هيئة فارغة. - Theo
لا يزال الجسم الفارغ عبارة عن استجابة ، مع كائن ، مثل index.html فارغ. ما طلبته هو توفير استجابة 200 مع أي مورد تعلق عليه (أي ملف خدم). أما عن كيفية القيام بذلك على nginx ، فأنا بحاجة إلى البحث عنه بنفسي ، لقد فعلت ذلك مرة واحدة فقط على apache ، ولا أتذكره من ناحية. - sandroid
يبدو 304 أنه سيرسل كل الإشارات الخاطئة لأشياء مثل التصحيح والعودة المؤقتة. - Kzqai