কীভাবে যদি / অন্য বিবৃতিতে এনজিনেক্স কনফের সাথে থাকে?


9

এনজিনেক্স দিয়ে কি এমন কিছু করা সম্ভব?

if ( $http_user_agent = "wget" ){
   server {
      listen      11.11.11.11:1111;
      root        /website1/;
      server_name example.com www.example.com;
else 

   server {
      listen      22.22.22.22:22222;
      root        /website2/;
      server_name example2.com www.example2.com;
}


2
আপনি অদ্ভুত এবং বেশ অর্থহীন কিছু লিখেছিলেন। শুরু থেকে শুরু করার চেষ্টা করুন, আপনি কোন সমস্যার সমাধান করতে চান
আলেক্সি টেন

উত্তর:


9

Nginx পুনর্লিখনের মডিউলটির ifনির্দেশনা রয়েছে (উদাহরণগুলির সাথে লিঙ্কযুক্ত ডকুমেন্টেশন দেখুন) তবে তা নয় else। এর সমতুল্য elseএমন সমস্ত হবে যা একটি দিয়ে সংশোধিত হয়নিif

আপনি এ এর ifভিতরে ব্যবহার করতে পারেন server { }তবে অন্য উপায়ে নয়। ইতিমধ্যে সার্ভারের প্রয়োজনের অনুরোধের আগেও আপনার শর্তটি তুলনা করতে হবে না। সেখানে, আপনি কেবল তখনই বিষয়বস্তু পরিবেশন করতে পারেন যখন ব্যবহারকারী এজেন্ট (বা না) থাকে wget

এছাড়াও লক্ষ করুন যে আপনার ifঅভ্যন্তরটি ব্যবহার করা উচিত নয় locationকারণ এটি পছন্দসই হিসাবে কাজ করতে পারে না (দেখুন যদি খারাপ হয় তবে )।


3

প্রদত্ত ফর্মটিতে এটি কাজ করবে না: এইচটিটিপি ব্যবহারকারী-এজেন্ট পরীক্ষা করে বোঝা যায় যে অনুরোধটি ইতিমধ্যে প্রাপ্ত হয়েছিল। এটি কেবল তখনই সম্ভব যদি কিছু serverব্লক ইতিমধ্যে সংজ্ঞায়িত করা থাকে। আপনি কি অন্য কোথাও পেয়েছেন এমন একটি অনুরোধের ব্যবহারকারী-এজেন্ট স্ট্রিংয়ের উপর নির্ভর করে আপনি কি নতুন সার্ভারগুলি শুরু করতে চান?

আপনি যদি কেবল ভিন্ন বিষয়বস্তু পরিবেশন করতে চান তবে ব্যবহারকারী-এজেন্টের মতো অনুরোধের অংশগুলির উপর নির্ভর করে বিভিন্ন পাথে পুনর্নির্দেশ করা সম্ভব, যেমন, যেমন: http://nginx.org/en/docs/http/ngx_http_rewrite_module সহ। এইচটিএমএল

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