এনগিনেক্স সাবডোমেন পুনর্লিখন


8

তবুও আরও একটি এনজিনেক্স পুনরায় লেখার বিধি প্রশ্ন

আমি কিভাবে থেকে একটি লেখা করতে পারি না http://www.*.domain.comকরার http://*.domain.com?

আগাম ধন্যবাদ

-- দেব

সম্পাদনা করুন:

আমি দুঃখিত আমি টেক্সটাইল ফর্ম্যাটিংটি আমার প্রশ্ন থেকে * মুছে ফেলতে দেখিনি। আমি এখন এটি স্থির। আমার যা করা দরকার তা হল www.joe.domain.com থেকে joe.domain.com এ যান, যেখানে জো কোনও শব্দ হতে পারে।

উত্তর:


7

ডোমেইন ডট কমের আগে অতিরিক্ত সময়ের তাত্পর্য কী? ইউআরএল থেকে www সরানোর লক্ষ্য কি? যদি তা হয় তবে এই কৌশলটি করা উচিত:

if ($host ~* www\.(.*)) {
  set $host_without_www $1;
  rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}

sudo /etc/init.d/nginx restartএটি লোড করতে:

সূত্র: এনজিআইএনএক্স উইকি


আমি দুঃখিত আমি টেক্সটাইল ফর্ম্যাটিংটি আমার প্রশ্ন থেকে * মুছে ফেলতে দেখিনি। আমার যা করা দরকার তা হল www.joe.domain.com থেকে joe.domain.com এ যান, যেখানে জো কোনও শব্দ হতে পারে। সুতরাং আপনি ঠিক বলেছেন, আমার শুধু www মুছে ফেলা দরকার।
দেব

12

এটি বেশ কিছুটা হ্যাক।

দ্রুততম পারফরম্যান্স বুদ্ধিমান হতে হবে

server {
  server_name www.domain.com;
  rewrite ^ http://domain.com$request_uri permanent;
}

আপনি একটি রেইগেক্স ম্যাচ পাশাপাশি দুটি ক্যাপচার সংরক্ষণ করুন এবং আপনি ম্যাচিং সার্ভার ব্লকটি অনুসন্ধান করতে হ্যাশ টেবিলগুলি ব্যবহার করে এনগিনেক্সের সুবিধা পাবেন।

এছাড়াও, আপনাকে এনজিনেক্স পুনরায় আরম্ভ করার দরকার নেই - একটি পুনরায় লোডের জন্য প্রয়োজনীয় যা প্রয়োজন, এবং যে প্রয়োজনের চেয়ে আরও নিচে সময় চান?


+1 বোঝায় ... চিয়ার্স
iainlbc

1
এটি কোনও হ্যাক নয়। Nginx সার্ভার নামগুলির মাধ্যমে খুব দ্রুত অনুসন্ধান করে, তাই এটি সত্যই দ্রুততম পদ্ধতির approach
আলেকজান্ডার আজরোভ

1
@ আলাজ এটি আইএনএলবিসি দ্বারা প্রদত্ত উত্তরের প্রতিক্রিয়া হিসাবে জানিয়েছিল, আমি বোঝাতে চাইছিলাম যে যদি শর্তটি হ্যাক হয় তবে সার্ভারটি সন্ধানের প্রস্তাব দেওয়া হয়নি।
মার্টিন Fjordvald

6

আপনি নিয়মিত এক্সপ্রেশন সার্ভারের নামগুলি ব্যবহার করতে পারেন (দেখুন http://nginx.org/en/docs/http/server_names.html#regex_names ):

server {
  listen 80;
  listen 443;
  server_name ~^www\.(\w+)\.domain\.com$
  location / {
    rewrite ^ $scheme://$1.domain.com$request_uri permanent;
  }
}

1

আপনি শত শত ডোমেন না পাওয়া পর্যন্ত মার্টিন এফের সমাধানটি সমস্ত ভাল এবং ভাল। তবে আমি অন্য উপায়ে যাওয়ার পরামর্শ দিচ্ছি - www.joe.domain.com এ অ্যাপ্লিকেশনটি পরিবেশন করতে এবং joe.domain.com থেকে পুনঃনির্দেশ। খুব নিশ্চিত যে এটি কোনও আরএফসিতে রয়েছে।


আপনার যদি অনেকগুলি ডোমেইন এনজিঙ্ক্স হ্যান্ডেল করে থাকে তবে কনফিগারেশনটি তৈরি করতে একটি স্ক্রিপ্ট লিখুন। এটি মোটামুটি সোজা ফরওয়ার্ড কনফিগারেশন ভাষা এবং আপনি উচ্চ ট্র্যাফিক সার্ভারে প্রতিটি পৃষ্ঠার লোডে রিজেক্স পার্সিং করতে চান না।
মার্টিন Fjordvald

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

আপনার যদি কয়েকশো ডোমেন থাকে তবে সার্ভার_নামে regexp ব্যবহার করুন: stackoverflow.com/questions/2498712/nginx-subdomain-rewrite
আলেকজান্ডার আজারভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.