نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

میں اپنے اندرونی نیٹ ورک پر واقع نیکسٹ کلاؤڈ پر پراکسی کو ریورس کرنے کے لیے OpenLiteSpeed ​​کو کیسے ترتیب دے سکتا ہوں؟

حیرت کی بات یہ ہے کہ اوپن لائٹ اسپیڈ کے لیے Habré پر تلاش کرنے سے کچھ حاصل نہیں ہوتا! میں اس ناانصافی کو درست کرنے میں جلدی کرتا ہوں، کیونکہ LSWS ایک قابل ویب سرور ہے۔ مجھے اس کی رفتار اور فینسی ویب ایڈمنسٹریشن انٹرفیس کی وجہ سے پسند ہے:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

اس حقیقت کے باوجود کہ OpenLiteSpeed ​​ایک ورڈپریس "ایکسلیٹر" کے طور پر سب سے زیادہ مشہور ہے، آج کے مضمون میں میں اس کی ایک مخصوص ایپلی کیشن دکھاؤں گا۔ یعنی، درخواستوں کی ریورس پراکسینگ۔ کیا آپ کہیں گے کہ اس کے لیے nginx کا استعمال زیادہ عام ہے؟ میں مان جاؤں گا۔ لیکن ہمیں واقعی LSWS سے پیار ہو گیا!

پراکسی کرنا ٹھیک ہے، لیکن کہاں؟ اتنی ہی شاندار سروس نیکسٹ کلاؤڈ ہے۔ ہم پرائیویٹ "فائل شیئرنگ کلاؤڈز" بنانے کے لیے نیکسٹ کلاؤڈ کا استعمال کرتے ہیں۔ ہر کلائنٹ کے لیے، ہم نیکسٹ کلاؤڈ کے ساتھ ایک علیحدہ VM مختص کرتے ہیں، اور ہم انہیں "باہر" بے نقاب نہیں کرنا چاہتے۔ اس کے بجائے، ہم ایک عام ریورس پراکسی کے ذریعے پراکسی درخواستیں بھیجتے ہیں۔ یہ حل آپ کو اجازت دیتا ہے:
1) اس سرور کو ہٹا دیں جس پر کلائنٹ کا ڈیٹا انٹرنیٹ سے محفوظ ہے اور
2) IP پتے محفوظ کریں۔

خاکہ اس طرح لگتا ہے:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

یہ واضح ہے کہ خاکہ آسان ہے، کیونکہ ویب سروسز کے بنیادی ڈھانچے کو منظم کرنا آج کے مضمون کا موضوع نہیں ہے۔

اس مضمون میں بھی میں نیکسٹ کلاؤڈ کی تنصیب اور بنیادی ترتیب کو چھوڑ دوں گا، خاص طور پر چونکہ Habré پر اس موضوع پر مواد موجود ہیں۔ لیکن میں آپ کو وہ ترتیبات ضرور دکھاؤں گا جن کے بغیر نیکسٹ کلاؤڈ پراکسی کے پیچھے کام نہیں کرے گا۔

دیئے گئے:
نیکسٹ کلاؤڈ میزبان 1 پر انسٹال ہے اور HTTP (SSL کے بغیر) کے ذریعے کام کرنے کے لیے ترتیب دیا گیا ہے، اس کا صرف مقامی نیٹ ورک انٹرفیس ہے اور ایک "گرے" IP ایڈریس 172.16.22.110 ہے۔
آئیے میزبان 2 پر OpenLiteSpeed ​​کو ترتیب دیں۔ اس کے دو انٹرفیس ہیں، ایک بیرونی (انٹرنیٹ دیکھتا ہے) اور ایک اندرونی انٹرفیس جس میں نیٹ ورک پر آئی پی ایڈریس ہے 172.16.22.0/24
DNS نام cloud.connect.link میزبان 2 کے بیرونی انٹرفیس کے IP ایڈریس کی طرف لے جاتا ہے۔

ٹاسک:
لنک کا استعمال کرتے ہوئے انٹرنیٹ سے حاصل کریں'https://cloud.connect.link' (SSL) اندرونی نیٹ ورک پر نیکسٹ کلاؤڈ پر۔

  • اوبنٹو 18.04.2 پر اوپن لائٹ اسپیڈ انسٹال کرنا۔

آئیے ایک ذخیرہ شامل کریں:

wget -O — http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh |سوڈو باش
APT حاصل sudo اپ ڈیٹ

انسٹال کریں، چلائیں:

sudo apt-get install openlitespeed
sudo /usr/local/lsws/bin/lswsctrl شروع

  • آئیے ایک کم سے کم فائر وال سیٹ اپ کریں۔

    sudo ufw ssh کی اجازت دیتا ہے۔
    sudo ufw ڈیفالٹ آؤٹ گوئنگ کی اجازت دیتا ہے۔
    sudo ufw ڈیفالٹ آنے سے انکار کرتا ہے۔
    سوڈو ufw کو HTTP کی اجازت دیتی ہے
    sudo ufw https کی اجازت دیں۔
    sudo ufw اجازت دیتا ہے۔ آپ کا انتظامی میزبان کسی بھی پورٹ 7080 پر
    سوڈو ufw کو فعال

  • آئیے OpenLiteSpeed ​​کو ریورس پراکسی کے طور پر ترتیب دیں۔
    آئیے ورچوئل ہوسٹ کے لیے ڈائریکٹریز بنائیں۔

    cd/usr/local/lsws/
    sudo mkdirc cloud.connect.link
    cd cloud.connect.link/
    sudo mkdir {conf,html,logs}
    sudo chown lsadm:lsadm ./conf/

آئیے LSWS ویب انٹرفیس سے ورچوئل ہوسٹ کو کنفیگر کرتے ہیں۔
یو آر ایل کا انتظام کھولنا http://cloud.connect.link:7080
ڈیفالٹ لاگ ان/پاس ورڈ: ایڈمن/123456

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

ورچوئل ہوسٹ شامل کریں (ورچوئل ہوسٹس > شامل کریں)۔
شامل کرتے وقت، ایک ایرر میسج ظاہر ہوگا جو اس بات کی نشاندہی کرے گا کہ کنفیگریشن فائل غائب ہے۔ یہ عام بات ہے اور اسے کلک کرنے کے لیے کلک کرکے حل کیا جاسکتا ہے۔

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

جنرل ٹیب میں، دستاویز کی جڑ کی وضاحت کریں (اگرچہ اس کی ضرورت نہیں ہے، کنفگ اس کے بغیر ختم نہیں ہوگا)۔ ڈومین کا نام، اگر متعین نہیں کیا گیا ہے تو، ورچوئل ہوسٹ نام سے لیا جائے گا، جسے ہم اپنے ڈومین کا نام کہتے ہیں۔

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

اب یہ یاد رکھنے کا وقت ہے کہ ہمارے پاس صرف ایک ویب سرور نہیں ہے، بلکہ ایک ریورس پراکسی ہے۔ درج ذیل ترتیبات LSWS کو بتائیں گی کہ کیا پراکسی اور کہاں۔ ورچوئل ہوسٹ سیٹنگز میں، ایکسٹرنل ایپ ٹیب کو کھولیں اور ویب سرور کی قسم کی ایک نئی ایپلیکیشن شامل کریں:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

ہم نام اور پتہ بتاتے ہیں۔ آپ صوابدیدی نام کی وضاحت کر سکتے ہیں، لیکن آپ کو اسے یاد رکھنے کی ضرورت ہے؛ یہ اگلے مراحل میں مفید ہو گا۔ وہ پتہ ہے جہاں نیکسٹ کلاؤڈ اندرونی نیٹ ورک پر رہتا ہے:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

اسی ورچوئل ہوسٹ سیٹنگز میں، سیاق و سباق کے ٹیب کو کھولیں اور پراکسی قسم کا ایک نیا سیاق و سباق بنائیں:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

پیرامیٹرز کی وضاحت کریں: URI = /، ویب سرور = nextcloud_1 (پچھلے مرحلے سے نام)

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

LSWS دوبارہ شروع کریں۔ یہ ویب انٹرفیس سے ایک کلک کے ساتھ کیا جاتا ہے، معجزات! (مجھ میں موروثی ماؤس کیریئر بولتا ہے)

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا
نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

  • ہم سرٹیفکیٹ انسٹال کرتے ہیں اور https ترتیب دیتے ہیں۔
    سرٹیفکیٹ حاصل کرنے کا طریقہ کار ہم اسے چھوڑ دیں گے اور اتفاق کریں گے کہ یہ ہمارے پاس پہلے سے موجود ہے اور یہ /etc/letsencrypt/live/cloud.connect.link ڈائریکٹری میں کلید کے ساتھ موجود ہے۔

آئیے ایک "سننے والا" بنائیں (سننے والے> شامل کریں)، اسے "https" کہتے ہیں۔ آئیے اسے پورٹ 443 کی طرف اشارہ کریں اور نوٹ کریں کہ یہ محفوظ ہوگا:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

SSL ٹیب میں، کلید اور سرٹیفکیٹ کے راستے کی نشاندہی کریں:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

"سننے والا" بنا دیا گیا ہے، اب ورچوئل ہوسٹ میپنگ سیکشن میں ہم اپنے ورچوئل ہوسٹ کو اس میں شامل کریں گے:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

اگر LSWS صرف ایک سروس کے لیے پراکسی کرے گا، تو کنفیگریشن مکمل کی جا سکتی ہے۔ لیکن ہم اسے ڈومین نام کے لحاظ سے مختلف "اتھارٹیز" کو درخواستیں بھیجنے کے لیے استعمال کرنے کا ارادہ رکھتے ہیں۔ اور تمام ڈومینز کے اپنے سرٹیفکیٹ ہوں گے۔ لہذا، آپ کو ورچوئل ہوسٹ کنفیگریشن پر جانے کی ضرورت ہے اور اس کی کلید اور سرٹیفکیٹ کو دوبارہ SSL ٹیب میں بتانا ہوگا۔ مستقبل میں، یہ ہر نئے ورچوئل میزبان کے لیے کیا جانا چاہیے۔

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

جو کچھ باقی ہے وہ یو آر ایل کو دوبارہ لکھنا ترتیب دینا ہے تاکہ HTTP کی درخواستوں کو https پر پہنچایا جائے۔
(ویسے، یہ کب ختم ہو گا؟ یہ وقت ہے کہ براؤزرز اور دیگر سافٹ وئیر پہلے سے طے شدہ طور پر https پر سوئچ کریں، اور اگر ضروری ہو تو دستی طور پر No-SSL کو فارورڈ کریں)۔
دوبارہ لکھنے کو فعال کریں اور دوبارہ لکھنے کے اصول لکھیں:

RewriteCond %{SERVER_PORT} 80
دوبارہ لکھنا اصول. (.*) $۔ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

ایک عجیب غلط فہمی کی وجہ سے، آپ حسب معمول Graceful دوبارہ شروع کرنے کا استعمال کرتے ہوئے دوبارہ لکھنے کے اصول لاگو نہیں کر سکتے۔ لہذا، آئیے LSWS کو خوبصورتی سے نہیں بلکہ تقریباً اور مؤثر طریقے سے دوبارہ شروع کریں:

sudo systemctl lsws.service کو دوبارہ شروع کریں۔

سرور کے لیے پورٹ 80 سننے کے لیے، ہم ایک اور سننے والا بنائیں گے۔ آئیے اسے HTTP کہتے ہیں، 80ویں بندرگاہ کی نشاندہی کریں اور اس حقیقت کی نشاندہی کریں کہ یہ غیر محفوظ ہو گا:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

https سننے والے کو ترتیب دینے کے ساتھ مشابہت کے ساتھ، آئیے اپنے ورچوئل میزبان کو اس پر نقشہ بنائیں۔

اب ایل ایس ڈبلیو ایس پورٹ 80 کو سنے گا اور یو آر ایل کو دوبارہ لکھتے ہوئے اس سے 443 پر درخواستیں بھیجے گا۔
آخر میں، میں LSWS لاگنگ لیول کو کم کرنے کی تجویز کرتا ہوں، جو ڈیفالٹ کے طور پر ڈیبگ پر سیٹ ہے۔ اس موڈ میں، لاگز بجلی کی رفتار سے بڑھتے ہیں! زیادہ تر معاملات کے لیے، وارننگ لیول کافی ہے۔ سرور کنفیگریشن > لاگ پر جائیں:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

یہ OpenLiteSpeed ​​کی کنفیگریشن کو ریورس پراکسی کے طور پر مکمل کرتا ہے۔ ایک بار پھر ہم LSWS کو دوبارہ شروع کرتے ہیں، لنک پر عمل کریں۔ https://cloud.connect.link اور ہم دیکھتے ہیں:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

نیکسٹ کلاؤڈ کے ہمیں اندر آنے دینے کے لیے، ہمیں ڈومین cloud.connect.link کو بھروسہ مندوں کی فہرست میں شامل کرنے کی ضرورت ہے۔ آئیے config.php میں ترمیم کریں۔ میں نے اوبنٹو کو انسٹال کرتے وقت خود بخود Nextcloud انسٹال کیا اور کنفگ یہاں موجود ہے: /var/snap/nextcloud/current/nextcloud/config۔
'cloud.connect.link' پیرامیٹر کو trusted_domains کلید میں شامل کریں:

'trusted_domains' =>
سرنی (
0 => '172.16.22.110' ،
1 => 'cloud.connect.link'،
),

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

اگلا، اسی ترتیب میں آپ کو ہماری پراکسی کا IP پتہ بتانا ہوگا۔ براہ کرم نوٹ کریں کہ ایڈریس کو ایک کے طور پر بیان کیا جانا چاہئے جو نیکسٹ کلاؤڈ سرور کو نظر آتا ہے، یعنی LSWS مقامی انٹرفیس IP۔ اس قدم کے بغیر، نیکسٹ کلاؤڈ ویب انٹرفیس کام کرتا ہے، لیکن ایپلیکیشنز مجاز نہیں ہیں۔

'trusted_proxies' =>
سرنی (
0 => '172.16.22.100' ،
),

بہت اچھا، اس کے بعد ہم اجازت کے انٹرفیس پر جا سکتے ہیں:

نیکسٹ کلاؤڈ کے اندر اور اوپن لائٹ اسپیڈ کے باہر: ریورس پراکسینگ ترتیب دینا

مشکل حل ہو گئی! اب ہر کلائنٹ اپنے ذاتی یو آر ایل کا استعمال کرتے ہوئے "فائل کلاؤڈ" کو بحفاظت استعمال کر سکتا ہے، فائلوں کے ساتھ سرور کو انٹرنیٹ سے الگ کر دیا گیا ہے، مستقبل کے کلائنٹس کو سب کچھ ایک جیسا ملے گا اور کسی ایک اضافی IP ایڈریس کو بھی نقصان نہیں پہنچے گا۔
مزید برآں، آپ جامد مواد کی فراہمی کے لیے ریورس پراکسی استعمال کر سکتے ہیں، لیکن نیکسٹ کلاؤڈ کے معاملے میں یہ رفتار میں نمایاں اضافہ نہیں کرے گا۔ تو یہ اختیاری اور اختیاری ہے۔

مجھے اس کہانی کا اشتراک کرتے ہوئے خوشی ہوئی، مجھے امید ہے کہ یہ کسی کے لیے مفید ثابت ہوگی۔ اگر آپ اس مسئلے کو حل کرنے کے لیے مزید خوبصورت اور موثر طریقے جانتے ہیں، تو میں آپ کے تبصروں کا شکر گزار ہوں گا!

ماخذ: www.habr.com

نیا تبصرہ شامل کریں