Nginx HTTP کو HTTPS پر ری ڈائریکٹ کریں۔

Nginx Redirect Http Https



Nginx ، جسے انجن x کہا جاتا ہے ، ایک مفت ، اوپن سورس لینکس پر مبنی اعلی کارکردگی والا ویب اور ریورس پراکسی سرور ہے جو انٹرنیٹ پر سب سے بڑی ویب سائٹ ٹریفک کے بوجھ کو سنبھالنے اور سنبھالنے کا ذمہ دار ہے۔ Nginx ایک طاقتور ری ڈائریکٹ کرنے والا ٹول ہے جسے آپ کے سسٹم پر آسانی سے ترتیب دیا جا سکتا ہے تاکہ کم محفوظ یا غیر خفیہ HTTP ویب ٹریفک کو ایک خفیہ اور محفوظ HTTPS ویب سرور پر ری ڈائریکٹ کیا جا سکے۔ اگر آپ سسٹم ایڈمنسٹریٹر یا ڈویلپر ہیں ، تو آپ Nginx سرور باقاعدگی سے استعمال کر رہے ہیں۔

اس آرٹیکل میں ، ہم اس پر کام کریں گے کہ ویب ٹریفک کو HTTP سے Nginx میں محفوظ HTTPS پر کیسے ری ڈائریکٹ کیا جائے۔







جوابات اور درخواستیں HTTP میں سادہ متن کی صورت میں واپس کی جاتی ہیں ، جبکہ HTTPS کلائنٹ اور سرور سسٹم کے مابین رابطے کو خفیہ کرنے کے لیے SSL/TLS استعمال کرتا ہے۔ لہذا بہت سی وجوہات کی وجہ سے ، HTTPS HTTP پر استعمال ہوتا ہے ، جو ذیل میں درج ہیں:



  • دونوں سمتوں میں کلائنٹ سرور کے درمیان تمام ڈیٹا خفیہ ہے۔ تاہم ، اگر کوئی روکا جائے تو کوئی بھی حساس معلومات تک رسائی حاصل نہیں کر سکتا۔
  • جب آپ HTTPS استعمال کر رہے ہیں ، گوگل کروم اور دوسرے براؤزر آپ کی ویب سائٹ کے ڈومین کو محفوظ سمجھیں گے۔
  • HTTPS ورژن HTTP/2 پروٹوکول کا استعمال کرتے ہوئے آپ کی مخصوص ویب سائٹ کی کارکردگی کو بہتر بناتا ہے۔
  • اگر آپ HTTPS کے ذریعے اپنی ویب سائٹ کے ڈومین کی خدمت کرتے ہیں ، تو ویب سائٹ گوگل پر بہتر درجہ رکھتی ہے ، کیونکہ یہ تمام HTTPS محفوظ ویب سائٹس کے حق میں ہے۔

ہر سائٹ ورژن کے لیے علیحدہ سرور بلاک میں Nginx میں HTTP HTTP کو ٹریفک ری ڈائریکٹ کرنے کو ترجیح دی جاتی ہے۔ یہ بھی مشورہ دیا جاتا ہے کہ ٹریفک کو ری ڈائریکٹ کرنے سے گریز کریں اگر سمت جو سرور کے غیر معمولی رویے کا سبب بن سکتی ہے۔



تمام ٹریفک کو HTTP سے HTTPS پر ری ڈائریکٹ کریں۔

تمام ٹریفک کو HTTP سے HTTPS ورژن میں ری ڈائریکٹ کرنے کے لیے Nginx کنفیگریشن فائل میں درج ذیل تبدیلیاں شامل کریں:





سرور {
سنو 80۔default_server؛
خدمت گار کا نام _؛
واپسی 301۔https: //$ میزبان$ request_uri؛
}

ذیل میں ، ہم نے ہر ایک مذکورہ بالا اصطلاح کی وضاحت کی ہے:

80 ڈیفالٹ_سرور سنیں - یہ آپ کے سسٹم کو سگنل دے گا جو پورٹ 80 پر تمام HTTP ٹریفک کو پکڑتا ہے۔
Server_name _ - یہ وہ ڈومین ہے جو کسی بھی میزبان نام کے ساتھ مماثل ہوگا۔



301 واپس کریں https: // $ host $ request_uri - یہ آپ کے سرچ انجنوں کو بتاتا ہے جو اسے مستقل طور پر ری ڈائریکٹ کرتے ہیں۔ یہ وضاحت کرتا ہے کہ متغیر $ میزبان ڈومین نام رکھتا ہے۔

ایک بار جب آپ کنفیگریشن کی ترتیبات تبدیل کر لیں ، آپ کو اپنے سسٹم پر Nginx سروسز کو دوبارہ لوڈ کرنے کی ضرورت ہے۔ لہذا ، درج ذیل کمانڈ کا استعمال کرکے اپنی Nginx خدمات کو دوبارہ لوڈ کریں:

$سودوsystemctl دوبارہ لوڈ nginx

Nginx میں مخصوص ڈومین کے لیے HTTP کو HTTPS ورژن پر ری ڈائریکٹ کریں۔

اپنے ڈومین پر SSL سرٹیفکیٹ انسٹال کرنے کے بعد ، آپ کے پاس اس ڈومین کے لیے دو سرور بلاکس آپشنز ہوں گے۔ ایک بلاک پورٹ 80 پر HTTP ورژن سننے کے لیے ہے ، اور دوسرا ورژن HTTPS پورٹ 443 پر ہے۔ تاہم ، کسی ایک ویب سائٹ ڈومین کو HTTP سے HTTPS پر ری ڈائریکٹ کرنے کے لیے ، آپ کو Nginx کنفیگریشن کھولنے کی ضرورت ہے۔ آپ اس کنفیگریشن فائل کو/etc/nginx/sites-available ڈائریکٹری میں تلاش کر سکتے ہیں۔ کسی بھی صورت میں ، اگر آپ کو یہ فائل نہیں ملی تو آپ اسے /etc/nginx/nginx.conf ،/usr/local/nginx/conf یا/usr/local/etc/nginx کے ساتھ تلاش کر سکتے ہیں ، اور پھر انجام دیں اس فائل میں درج ذیل تبدیلیاں:

سرور {
سنو 80۔؛
خدمت گار کا نام domain-name.com www.domain-name.com۔؛
واپسی 301۔https://domain-name.com۔$ request_uri؛
}

آئیے مندرجہ بالا کوڈ لائن کو لائن سے سمجھیں۔
80 سنیں - پورٹ 80 کا استعمال کرتے ہوئے ، سرور تمام آنے والے کنکشنز کو مخصوص ڈومین کے لیے سنے گا۔

Server_name domain-name.com www.domain-name.com-یہ ڈومین ناموں کی وضاحت کرتا ہے۔ لہذا ، اسے اپنی ویب سائٹ کے ڈومین نام سے تبدیل کریں جسے آپ ری ڈائریکٹ کرنا چاہتے ہیں۔

واپسی 301 https: //domain-name.com$request_uri-یہ ٹریفک کو سائٹ کے HTTPS ورژن میں منتقل کرتا ہے۔ $ request_uri متغیر مکمل اصل درخواست URI کے لیے استعمال کیا جاتا ہے جس میں دلائل بھی شامل ہوتے ہیں۔

مندرجہ ذیل طریقہ کار کا استعمال کرتے ہوئے ، آپ HTTPS www ورژن پر ٹریفک کو سائٹ کے غیر www ورژن پر بھیج سکتے ہیں۔ غیر www اور www دونوں ورژنز کے لیے علیحدہ سرور بلاک میں ری ڈائریکٹ بنانے کی سفارش کی جاتی ہے۔

آئیے ایک مثال سے سمجھاتے ہیں۔ اگر آپ www HTTPS درخواستوں کو غیر www ورژن پر ری ڈائریکٹ کرنا چاہتے ہیں تو آپ مندرجہ ذیل ترتیب پر عمل کریں گے۔

سرور {
سنو 80۔؛
خدمت گار کا نام domain-name.com www.domain-name.com۔؛
واپسی 301۔https://domain-name.com۔$ request_uri؛
}
سرور {
سنو 443۔ ایس ایس ایل http2؛
خدمت گار کا نام www.domain-name.com۔؛
#. . . دوسرا کوڈ
واپسی 301۔https://domain-name.com۔$ request_uri؛
}
سرور {
سنو 443۔ ایس ایس ایل http2؛
خدمت گار کا نام domain-name.com؛

#. . . دوسرا کوڈ
}

ڈومین کے نام کو اپنے ڈومین سے تبدیل کریں ، جیسے www.linuxhint.com۔

نتیجہ

ہم نے Nginx سرور پر HTTP ورژن سے HTTPS پر ٹریفک کو ری ڈائریکٹ کرنے کے طریقے پر تبادلہ خیال کیا ہے۔ Nginx کنفیگریشن فائل کی ترتیب کو تبدیل کر کے ، آپ آسانی سے ٹریفک کو HTTPS پر کسی مخصوص ڈومین کے لیے بھیج سکتے ہیں یا سب کو ری ڈائریکٹ کر سکتے ہیں۔ یہ طریقہ ، جس کا ہم نے اس مضمون میں ذکر کیا ہے ، صارف کے تجربے میں کوئی بھی تبدیلی کرکے آپ کو اپنی ویب سائٹ کو زیادہ محفوظ بنانے میں مدد مل سکتی ہے۔