सवाल फ़ाइल की सेवा किए बिना Nginx कॉन्फ़िगरेशन से 200 के साथ उत्तर दें


मैंने इस कॉन्फ़िगरेशन लाइन के साथ किसी भी फ़ाइल की सेवा किए बिना 200 प्रतिक्रिया वापस भेजने के लिए अपाचे को कॉन्फ़िगर किया है

Redirect 200 /hello

क्या मैं इसे Nginx के साथ कर सकता हूँ? मैं एक फाइल नहीं देना चाहता, मैं बस सर्वर को 200 से प्रतिक्रिया देना चाहता हूं (मैं सिर्फ अनुरोध लॉगिंग कर रहा हूं)।

मुझे पता है कि मैं एक इंडेक्स फ़ाइल जोड़ सकता हूं और एक ही चीज़ प्राप्त कर सकता हूं, लेकिन कॉन्फ़िगरेशन में ऐसा करने का मतलब है कि एक कम चीज है जो गलत हो सकती है।


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

197
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> उपयोगकर्ता-एजेंट: कर्ल / 7.38.0> होस्ट: लोकलहोस्ट> स्वीकार करें: / > <HTTP / 1.1 200 ठीक <तिथि: मंगलवार, 11 अक्टूबर 2016 13:27:53 GMT <सामग्री-प्रकार: एप्लिकेशन / ऑक्टेट-स्ट्रीम <सामग्री-लंबाई: 25 <कनेक्शन: जीवित रहें <सामग्री-प्रकार: एप्लिकेशन / json - jmcollin92
@ jmcollin92 जो हो सकता है यदि आपके पास कहीं और मौजूद डिफ़ॉल्ट डिफ़ॉल्ट प्रकार टाइप किया गया हो। आप इसका उपयोग करके ओवरराइड कर सकते हैं 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 पर इसे वास्तव में कैसे करना है, मुझे इसे स्वयं देखना है, मैंने केवल एक बार अपाचे पर ऐसा किया है, और मुझे हाथ याद नहीं है। - sandroid
304 ऐसा लगता है कि यह डिबगिंग और अस्थायी रिटर्न जैसी चीजों के लिए सभी गलत सिग्नल भेजेगा। - Kzqai