আমি কীভাবে বাহ্যিক স্ক্রিপ্টগুলি না চাওয়াতে অ্যাপাচে 503 স্থিতি ফিরিয়ে আনতে পারি


26

সময় সম্মানিত SE_firendly ফ্যাশনে আমার রক্ষণাবেক্ষণের জন্য ডাউন থাকা অবস্থায় আমার কোনও সাইট থেকে একটি 503 স্থিতি কোড ফিরিয়ে আনতে হবে। আমি বাহ্য স্ক্রিপ্টগুলি না চাওয়া ছাড়া এটি কীভাবে করব তা আমি মনে করি না, যা আমি এড়াতে পারি না।

এমন কোনও অ্যাপাচি নির্দেশিকা আছে যা আমাকে পিএইচপি স্ক্রিপ্টের অনুরোধ না করে কোনও স্ট্যাটাস শিরোনাম নির্ধারণ করে যেমন একটি হস্তান্তরিত HTTP স্থিতি কোডটি ফেরত দেওয়ার অনুমতি দেবে?


2
আমি পুরোপুরি নিশ্চিত নই যে পিএইচপি ফাইল চালানো "হ্যাক" হিসাবে শ্রেণিবদ্ধ করে ... এটি ওয়েব সার্ভারের জন্য ঠিক কীভাবে ডিজাইন করা হয়েছিল ...
মার্ক হেন্ডারসন

3
হুঁ। আমি মনে করি সার্ভারের প্রতিক্রিয়াটির একটি একক লাইন সেট করতে পুরো ব্যাখ্যা করা স্ক্রিপ্টিং ভাষাটি চাওয়া হ্যাক হিসাবে যোগ্য নয়। বিস্তৃত ওয়ার্কআরউন্ডস ছাড়াই প্রতিক্রিয়া শিরোনামগুলির লাইন সেট করা আমার কাছে মনে হয় যে ওয়েব সার্ভারগুলি যা করার জন্য ডিজাইন করা হয়েছিল তার কাছাকাছি।
ডান ম্যাকিনলে

উত্তর:


32

এটি প্রতিটি অনুরোধকে 503 স্থিতির সাথে একটি স্থিতিশীল হোল্ডিং পৃষ্ঠা সরবরাহ করে।

RedirectMatch 503 ^/(?!holding\.html)
ErrorDocument 503 /holding.html
Header always set Retry-After "18000"

পুনর্নির্দেশ ম্যাচটি হোল্ডিং পৃষ্ঠাটি নিজেই উপেক্ষা করার জন্য ব্যবহৃত হয় যা অন্যথায় অসীম লুপ তৈরি করে।

Mod_header একটি পুনরায় চেষ্টা-পরে শিরোনাম সেট করতে ব্যবহার করা হয় যাতে আপনি গুগল / অন্যান্য বট ইত্যাদি বলতে পারেন যে এই উদাহরণটিতে 18000 সেকেন্ড (5 ঘন্টা) পরে আপনার ব্যাকআপ নেওয়া উচিত। আপনি sudo ap2enmod headermod_header সক্রিয় করতে পারেন (যা শিরোনাম নির্দেশের জন্য প্রয়োজনীয়)।


2
+1: একটি পক্ষের মন্তব্য: আপনি কেবলমাত্র [RedirectMatch 503। *] যুক্ত করতে পারেন এবং [শিরোনাম সবসময় "18000" পরে পুনরায় চেষ্টা করুন) এবং এটি ডিফল্ট 503 ত্রুটি বার্তার সাথে কাজ করে। বিভিন্ন ভাষার জন্য আলাদা বার্তা নির্ধারণের জন্য কনফিড / স্থানীয়করণ-ত্রুটি-পৃষ্ঠাগুলি ফাইলের জন্য পরীক্ষা করুন (যাদের জন্য আলোচনার প্রয়োজন হয়, উরফ এবং মডিউল অন্তর্ভুক্ত)।
লিপ

এটি কাজ করে! আমার ব্যক্তিগত ওয়েবসাইটের জন্য, আমি ব্যবহার করি RedirectMatch 503 ^/(?!\.Error/.*|dragonlord-bg\.jpg)
বিডব্লিউড্রাকো

7

চেষ্টা

Redirect 503 / /

Http://httpd.apache.org/docs/2.2/mod/mod_alias.html# প্রত্যক্ষ থেকে :

অন্যান্য স্থিতির কোডগুলি স্থিতির মান হিসাবে সংখ্যাগত স্থিতি কোডটি দিয়ে ফেরত দেওয়া যায়। যদি স্থিতিটি 300 এবং 399 এর মধ্যে হয় তবে ইউআরএল যুক্তি উপস্থিত থাকতে হবে, অন্যথায় এটি বাদ দিতে হবে। নোট করুন যে স্ট্যাটাসটি অবশ্যই অ্যাপাচি কোডের সাথে জানা থাকতে হবে (http_protocol.c এ ফাংশন সেন্ড_রর_সত্তার দেখুন)।

অতিরিক্ত দ্রষ্টব্য: এটি 503 ত্রুটির জন্য ডিফল্ট / কনফিগার করা ত্রুটি ডকুমেন্ট প্রদর্শন করবে।


ধন্যবাদ ডেভিড মোড_লিয়াসটি যেখানে আমি উত্তরটি খুঁজে পাওয়ার আশা করেছিলাম তা নয়, তবে মনে হয় এটি কাজটি করবে।
ডান ম্যাকিনলে

হ্যাঁ, আপনি যা করছেন তার জন্য পুনঃনির্দেশ সত্যই সঠিক ক্রিয়া নয় :)
ডেভিড পাশলে

পুনর্নির্দেশ 503 এর মধ্যে একটি অরগমেন্ট, ইউআরএল-পাথ অনুপস্থিত যা সর্বদা বাধ্যতামূলক। অন্যদিকে ইউআরএলটি অবশ্যই বাদ দিতে হবে যদি পুনঃনির্দেশিত কোডটি 300-399 না হয়

1
আমি এটি করতে একটি ত্রুটি পেয়েছি: "পুনঃনির্দেশ দুটি বা তিনটি আর্গুমেন্ট নেয়, একটি optionচ্ছিক স্থিতি, তারপরে নথিটি পুনঃনির্দেশিত করতে হবে এবং গন্তব্য URL", আপনি প্রসঙ্গে আরও একটি সম্পূর্ণ উদাহরণ দিতে পারেন?
টম

4
Redirect 503 /কাজ মনে হচ্ছে।
এমপার্টেল

0

আপনার রক্ষণাবেক্ষণ মোডটিকে আরও নমনীয় করে তুলতে 503 সেট করুন যখন একটি বিশেষ ফাইল উপস্থিত থাকে, তবে:

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/.maintenance -f
RewriteRule .* - [R=503]

দ্রষ্টব্য: DOCUMENT_ROOT এর অবস্থানটি httpd 2.2 এবং 2.4 এর মধ্যে পৃথক হতে পারে

এইভাবে আপনাকে যা করতে হবে তা হ'ল "টাচ / পাথ / টো / ডোক্রোট /.মেনটেনেন্স" এবং আপনার সাইটটি তাত্ক্ষণিকভাবে 503 এর ফিরিয়ে নেওয়া শুরু করবে। তারপরে এটিকে সবুজ করে তোলার জন্য একটি কাস্টম সুন্দর বিন্যাসিত এইচটিএমএল ত্রুটি পৃষ্ঠা তৈরি করুন এবং এটিকে সঠিক অ্যাপাচি সার্ভারের কনফিগারেশনের ফাইলটিতে যুক্ত করুন:

ProxyErrorOverride on
ErrorDocument 503 /error/503.html

এবং বোনাস পয়েন্টগুলির জন্য যদি আপনার একাধিক ওয়েব সার্ভার হয় তবে একটি ভাগ করা ফাইল সিস্টেমে। মেইনটেনেন্সের অবস্থান তৈরি করে, বা আরও বোনাস পয়েন্টের জন্য:

pdsh -w $web1_ip,$web2_ip,$web3_ip "sudo touch /path/to/docroot/.maintenance"

রক্ষণাবেক্ষণ মোড ফাইলটি ভিত্তিক করে তোলার সুবিধা হ'ল এটি যখন কাজ করে আপনার অ্যাপ্লিকেশনটি তা না করে, এটি দ্রুত এবং সহজ, এবং একটি ফ্রন্টএন্ড ক্যাচিং প্রক্সি হ্যান্ডেল করা আরও সহজ কারণ আপনি 503 এর একসাথে সমস্ত ব্যাকএন্ড হ্যান্ডেল করতে পারবেন।

সূত্র:

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