কোনও ফাইল পরিবেশন না করে Nginx কনফিগারেশন থেকে 200 দিয়ে উত্তর দিন


122

এই কনফিগারেশন লাইনের সাথে কোনও ফাইল পরিবেশন না করে 200 কেজি প্রতিক্রিয়া পাঠানোর জন্য আমি অ্যাপাচি কনফিগার করেছি

Redirect 200 /hello

আমি কি এনগিনেক্সের সাথে এটি করতে পারি? আমি কোনও ফাইল পরিবেশন করতে চাই না, আমি চাই সার্ভারটি 200 দিয়ে সাড়া দেয় (আমি কেবল অনুরোধটি লগ করছি)।

আমি জানি আমি একটি ইনডেক্স ফাইল যুক্ত করতে এবং একই জিনিস অর্জন করতে পারি তবে কনফিগারেশনে এটি করা মানে এর চেয়ে কম একটি জিনিস যা ভুল হতে পারে।

উত্তর:


261

হ্যা, তুমি পারো

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

1
আমি কীভাবে প্রতিক্রিয়াতে একটি নতুন লাইন যুক্ত করব? gangnam\nstyle?
tback

1
@ পিছনে অবশ্যই, আপনি ঠিকই আছেন
ক্যাডমি

4
অ্যাড_হেডার আমার পক্ষে কাজ করে না কারণ এটি পুরানো 'কন্টেন্ট-টাইপ' প্রতিস্থাপনের পরিবর্তে অন্য একটি শিরোনাম যুক্ত করে। আমার প্রতিক্রিয়াতে আমার কাছে 2 'কন্টেন্ট-টাইপ' শিরোনাম রয়েছে: l কার্ল-ভি লোকালহোস্ট / হেলথ চেক / এইচ 1_পিও> জিইটি / হেলথ চেক / এইচ 1 পিপি HTTP / 1.1> ব্যবহারকারী-এজেন্ট: কার্ল / 7.38.0> হোস্ট: লোকালহোস্ট> স্বীকার করুন: / > <HTTP / 1.1 200 ঠিক আছে <তারিখ: মঙ্গল, 11 অক্টোবর 2016 13:27:53 GMT <বিষয়বস্তুর ধরণ: অ্যাপ্লিকেশন / অকটেট-স্ট্রিম <সামগ্রী-দৈর্ঘ্য: 25 <সংযোগ: টিকে থাকবে <সামগ্রী-প্রকার: অ্যাপ্লিকেশন / জেএসন
jmcollin92

1
@ jmcollin92 আপনার মন্তব্যটি জিজ্ঞাসা করা হয়েছিল এবং উত্তরটি দেওয়া হয়েছিল এর সাথে কিছু করার নেই। কারণ আপনার স্পষ্টতই কিছু প্রক্সি_পাস, fascgi_pass, যাই হোক না কেন ... তবে আমি এখনও অবস্থান / স্বাস্থ্যচেক / h1_pio answer # প্রক্সি_পাস ব্লেব্ল্যাব্লাকে আপনার যা প্রয়োজন তা উত্তর দিচ্ছি; প্রক্সি_হাইড_হেডার সামগ্রী-প্রকার; add_header সামগ্রী-প্রকারের অ্যাপ্লিকেশন / জেসন; the ভবিষ্যতে, আপনার প্রশ্নটি সঠিকভাবে এবং সঠিক জায়গায় জিজ্ঞাসা করুন
ক্যাডমি

6
@ jmcollin92 যা আপনার যদি অন্য কোথাও বিদ্যমান ডিফল্ট_ টাইপ হিসাবে ঘোষণা করে থাকে তবে তা ঘটতে পারে। আপনি নির্দেশের default_type text/plain;জায়গায় লোকেশন ব্লকের ভিতরে ব্যবহার করে এটি ওভাররাইড করতে পারেন add_header
tjb1982

20

আপনার 204 ব্যবহার করা দরকার কারণ এনগিনেক্স কোনও 200 জবাবদিহি না করে 200 কে অনুমতি দেবে না। একটি 204 পাঠাতে আপনি কেবল ব্যবহার আগমন নির্দেশ করার return 204;উপযুক্ত স্থানে।


আপনি যদি এটি ব্রাউজারের মাধ্যমে দেখার চেষ্টা করেন তবে দেখে মনে হবে এটি কিছুই করেনি। এটা ইচ্ছাকৃত। আপনি কিছুই সরবরাহ করেন নি (204), এটি কিছুই প্রদর্শন করে না। আপনি 204 পরিবেশন করেছেন তা প্রমাণ করতে, ব্যবহার করুন curl
jnovack

4

স্থিতি কোড সংজ্ঞা অনুসারে, আমি বিশ্বাস করি যে আপনি এটি ২০৪ হতে চান, এবং ২০০ নয়। অন্য যেটি আপনি ব্যবহার করতে পারবেন তা হ'ল 304, যা ক্যাশেড সামগ্রীর জন্য।

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


অবশ্যই, এটি একটি 204 করুন, আমি এটি কীভাবে করব? যদিও আমি খুব সন্দেহ করি যে কোনও ব্রাউজার খালি শরীর দ্বারা বিভ্রান্ত হবে।
থিও

1
খালি শরীরে একটি ফাঁকা সূচক html এর মতো কোনও বস্তুর সাথে এখনও একটি প্রতিক্রিয়া। আপনি যেটি জিজ্ঞাসা করেছেন তা হ'ল 200 প্রতিক্রিয়া সরবরাহ করা যাতে কোনও সংস্থান সংযুক্ত থাকে না (কোনও ফাইল সরবরাহ করা হয়নি)। ঠিক কীভাবে এটি এনজিএনএক্সে করা যায়, আমাকে এটি নিজের দিকে তাকাতে হবে, আমি একবার এপাচে এটি করেছি, এবং আমি হাতছাড়া করতে পারি না।
স্যান্ড্রয়েড

304 দেখে মনে হচ্ছে এটি ডিবাগিং এবং অস্থায়ী রিটার্নের মতো জিনিসের জন্য সমস্ত ভুল সংকেত প্রেরণ করবে।
Kzqai

2

@ মার্টিন এফজর্ডওয়ালের উত্তরটি সম্পূর্ণ করতে, আপনি যদি স্বাস্থ্য পরীক্ষা করার জন্য এই জাতীয় কনফিগারেশন ব্যবহার করছেন তবে সতর্ক হন।

যদিও একটি 204HTTP- র কোড একটি healthcheck (কোন কন্টেন্ট সঙ্গে সাফল্য ইঙ্গিত) -এর জন্য শব্দার্থগতভাবে নিখুঁত, কিছু সেবা না না এটা একটা সাফল্য বিবেচনা।

যথা, আমি গুগল ক্লাউড লোড-ব্যালান্সারগুলির সাথে সমস্যাটি পেয়েছি ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.