এনজিনেক্স ব্যাকেন্ডে ডাউন থাকলে প্রক্সি ক্যাশে ব্যবহার করে


11

ব্যাকএন্ড সার্ভার ডাউন থাকলে আমার প্রক্সি ব্যবহারের ক্যাশে এনগিনেক্স করা দরকার:

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

http {

  # ...

  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_cache_path /tmp/nginx levels=1:2 keys_zone=tmpzone:10m inactive=60m;
  proxy_cache_key "$scheme$request_method$host$request_uri";


  server {
    server_name _;

    location / {
      proxy_connect_timeout 5s;
      proxy_read_timeout 5s;
      proxy_cache tmpzone;
      proxy_cache_valid      200 304 1d;
      proxy_cache_use_stale  error timeout invalid_header updating http_500 http_502 http_503 http_504;
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host 'www.example.com';
      proxy_pass http://www.example.com;
    }
  }
}

প্রশ্নটি হল যদি ব্যাকএন্ড সার্ভারটি চালু থাকে তবে আমি প্রক্সি ক্যাশে কীভাবে বাইপাস করতে পারি? এবং যখন ব্যাকএন্ড সার্ভারটি হয়ে থাকে তখন আমার প্রক্সি সার্ভারটি ক্যাশে ব্যবহার করবেন না।


প্রশ্নটি আসলে কী?
জেনি ডি

প্রশ্নটি হল যদি ব্যাকএন্ড সার্ভারটি চালু থাকে তবে আমি প্রক্সি ক্যাশে কীভাবে বাইপাস করতে পারি?
সোবাই

বাক্সের সমাধানের মধ্যে একটি হতে পারে 2 "সার্ভার" চালানো, একটি ক্যাশে, এক ডাব্লু / ও ক্যাশে, এবং আপস্ট্রিম মডিউল ব্যবহার করুন nginx.org/en/docs/http/ngx_http_upstream_module.html ? সেরা সমাধানটি সম্ভবত ব্যাকএন্ড রয়েছে কিনা তা একটি চেক সহ প্রক্সি_ক্যাচি_বাইপাস ব্যবহার করতে সক্ষম হব ... যদিও এই কাজটি করা যায় তা সম্পর্কে আমার কোনও ধারণা নেই ... আকর্ষণীয় কেস।
সোভেনডি

এক্সওয়াই সমস্যার এই দৃষ্টান্তের সমাধানগুলি SO
Dayo

উত্তর:


8

এর সদৃশ মনে হচ্ছে:

/programming/16756271/how-to-configure-nginx-to-serve-cached-content-only-when-backend-is-down-5xx-re

সংক্ষেপে, প্রক্সি_ক্যাচি_ ব্যবহার_তুল্য ব্যবহার করুন

আপডেট হিসাবে, আমি এটি পরীক্ষা করেছি এবং এটি ভাল কাজ করে। আমি যেখানে আমার ওয়ার্কস্টেশনটিতে পরীক্ষা করেছি (সম্পূর্ণতার জন্য):

ফেডোরা 23 এনগিনেক্স 1.8.1 এসএসএল টার্মিনেটর হিসাবে কনফিগার করা হয়েছে + ক্যাশে + বিপরীত প্রক্সি অ্যাপাচি ২.৪.১৮ পোর্ট ৮০ এ শুনতে কনফিগার করা হয়েছে

অ্যাপাচি প্রবাহ হিসাবে অভিনয় করে, কেবল একটি স্ট্যাটিক ফাইল পরিবেশন করে আমি এই পরীক্ষাটি করেছি:

  1. অ্যাপাচি আপ, এনজিন্স আপ, ব্রাউজারটিকে ইংগিত করে বিপরীত প্রক্সি ইউআরএল এনজিঙ্ক্স দ্বারা পরিবেশন করা হয়েছে আমি অ্যাপাচি থেকে প্রক্সিযুক্ত সামগ্রী দেখতে পাচ্ছি। এই মুহূর্তে nginx এটি ক্যাশে রাখে।
  2. আপাচে থামল
  3. এনগিনেক্সের সাথে সংযোগ স্থাপন করে আমি ক্যাচেড ফাইলটি অ্যাপাচি দ্বারা পূর্বে পরিবেশিত হিসাবে দেখতে পাচ্ছি।

আমি ব্যবহৃত এনগিনেক্স কনফিগারেশনটি (কেবল আকর্ষণীয় অংশ):

nginx.conf:

http {
[...]
location
    proxy_cache_path        /var/lib/nginx/tmp/proxy/ levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=1g;
    include /etc/nginx/conf.d/*.conf;
}

/etc/nginx/conf.d/local.conf:

upstream localhost {
    server 127.0.0.1:80;
[...]
}


server {
    listen       127.0.0.1:443 ssl;

[...]

    location /be/ {
        proxy_pass              http://localhost;
        proxy_cache             STATIC;
        proxy_cache_valid       200 1d;
        proxy_cache_use_stale   error;
}

একেবারেই চেষ্টা করে দেখুন না।
sweb

ক্ষেত্রে আপনার এনগিনেক্স টিমকে একটি বাগ রিপোর্ট করা উচিত। আপনি বিটিডব্লিউ কি চেষ্টা করেছেন? যদি আমি এটি পুনরুত্পাদন করার চেষ্টা করব
ফ্রেডি

ঠিক আছে, আমি একটি পরীক্ষা করেছি এবং এটি ভাল কাজ করেছে। পরীক্ষার বিবরণ সহ আমার উত্তর আপডেট করুন।
ফ্রেডি

সোব্বের মূল প্রশ্নটি সম্পর্কে আমার পড়াটি ছিল যে, অ্যাপাচি এবং এনজিএনএক্স উভয়ের অবস্থাতেই, সমস্ত অনুরোধগুলি অ্যাপাচি ব্যাকএন্ডে যেতে হবে। অনুরোধ শুধুমাত্র অ্যাপাচি iff nginx ক্যাশে থেকে সার্ভ করা উচিত ডাউন
abhishekmukherg

@ অভিষেকমুখের্গ, আপনি যা বলতে পারেন তা করতে পারেন, তবে কেন? যখন উভয়ই আপ থাকে এবং ফাইলগুলি স্থিতিশীল থাকে (ভাবি jpg / css / html) আপনি যখন প্রকৃত সামনের দিকে থাকবেন তখন কেন আরও বেশি নেটওয়ার্ক / সিপিইউ / ইসিসি রিসোর্স ব্যবহার করে ব্যাকএন্ডে যাবেন? বিটিডাব্লু যদিও এটি অন্য প্রশ্নের জন্য বিষয়
ফ্রেডি

0

ক্যাশে সক্ষম হওয়া এমন একটি সার্ভারে প্রক্সি_ইন্টারসেপ্ট_অরফার্স এবং প্রক্সি 500s ব্যবহার করুন।

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