سرور پروکسی تصویر چیست؟
یک سرویس دهنده پروکسی سرور واسطه ای بین شما و وب سایت هایی است که شما مرور می کنید. مثل دروازه ای بین شما و اینترنت است. وقتی از سرور پروکسی استفاده می کنید ، ابتدا درخواست شما توسط سرور پروکسی صورت گرفته است. سرور پروکسی درخواست را بررسی می کند. سپس با سرور واقعی که حاوی وب سایت است متصل می شود و داده های آن سرور را برای شما ارسال می کند. سرورهای پروکسی سطوح مختلف عملکردی را ارائه می دهند. به عنوان مثال ، اگر میزبان چندین وب سایت در VPS خود هستید ، می توانید از یک سرور پراکسی برای هدایت درخواست به وب سایت های مختلف بر اساس URL های موجود در درخواست ها استفاده کنید.
معرفی نودجز
توسعه دهندگان JavaScript همیشه از عدم توانایی کدهای سمت سرور را انجام دهید. Node.js به عنوان دارو برای آنها ساخته شد. Node.js یک زبان برنامه نویسی نیست بلکه یک محیط اجرا است که در بالای موتور V8 Chrome ساخته شده است و به شما امکان می دهد تا JavaScript را در سمت سرور اجرا کنید. البته Node.js شامل یک کتابخانه غنی از ماژول های JavaScript است که پیشرفت های سمت سرور را ساده می کند. Node.js فقط جایگزین سکوهای دیگر سمت سرور نمی شود بلکه با پتانسیل بسیار زیادی روبرو می شود. آیا می توانید باور کنید که فقط 20 خط کد می توانید یک پروکسی سرور ایجاد کنید؟ خوب ، این همان چیزی است که می خواهید شاهد بعدی باشید.
در این راهنما ، فرض می کنم شما در حال داشتن سرور VPS هستید که اوبونتو روی آن نصب شده است. بیایید با همان ابتدا ، نصب Node.js.
نصب Node.js
دو روش وجود دارد که می توانید Node.js را روی اوبونتو نصب کنید. می توانید از مخزن اوبونتو استفاده کنید یا می توانید از طریق PPA از NodeSource استفاده کنید. به هر روشی که استفاده کنید ، به ابزار مناسب دریافت اوبونتو احتیاج دارید. اگر در حال همکاری با اوبونتو هستید ، باید با apt-get آشنا باشید. این کار خوب است که ابزار apt-get خود را قبل از بارگیری هر بسته به روز کنید.
sudo apt-get update
با استفاده از مخزن اوبونتو.
اوبونتو مخازن غنی از بسته ها را دارد. آنها با خوشحالی چیزهای محبوب به عنوان نودژ را در خود جای می دهند. دستور زیر را در ترمینال تایپ کنید.
sudo apt-get install nodejs npm
این ساده ترین روش برای نصب node.js. بیایید بررسی کنیم که Node.js با موفقیت نصب شده است یا خیر. برای دریافت نسخه ، دستور زیر را تایپ کنید.
گره -v
اگر می توانید یک نسخه را مشاهده کنید ، سپس Nodejs با موفقیت نصب می شود. اما ، نسخه را بررسی کنید. این نسخه کمی قدیمی است. این برای اکثر برنامه های Node.js کافی خواهد بود. اگر به آخرین نسخه ها نیاز دارید ، باید از مخزن Nodesource استفاده کنید. Nodes منبع اصلی فروش node.js. آنها با آخرین نسخه ها یک مخزن را حفظ می کنند.
برای دریافت Node.js از طریق Nodesource به Curl نیاز خواهید داشت. Curl یک ابزار خط فرمان برای انتقال داده ها بین سرور است. در اینجا ، ما از curl برای بارگیری Node.js از مخزن Nodesource استفاده خواهیم کرد.
sudo apt install curl
دو نسخه از Node.js. وجود دارد. یکی از آنها نسخه LTS است. LTS به معنای پشتیبانی طولانی مدت است. نسخه دیگر نسخه فعلی است. توصیه می شود از نسخه LTS استفاده کنید ، مگر اینکه در نسخه فعلی به ویژگی خاصی نیاز داشته باشید. بنابراین ، اجازه دهید آن را دریافت کنید.
curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
اکنون که مخازن Node.js را در VPS خود ذخیره کرده ایم ، باید آن را نصب کنیم.
sudo apt install nodejs
بگذارید بررسی کنیم نصب موفقیت آمیز است و همه چیز خوب است.
گره -v
ایجاد سرور پروکسی
اکنون ما در حال کار واقعی هستیم. بیایید ابتدا بفهمیم که پروکسی ما چه خواهد کرد. این سرور پروکسی درخواستهای دریافتی را آینه می دهد ، سپس URL مربوطه را ایجاد می کند. سپس به سرور شخص ثالث هدایت می شود. در این برنامه ، من سرور شخص ثالث را محدود به Google.com می کنم. به عنوان مثال ، اگر مشتری درخواست http://www.mydomain.com/images/srpr/logo11w.png ، پرونده را در http://www.google.com/images/srpr/ logo11w.png ارائه خواهد شد. بنابراین ، شروع می کنیم.
همانطور که قبلاً گفتم ، Node.js از نظر کتابخانه ای بسیار غنی است. این کتابخانه ها ماژول نامیده می شوند. احتمالاً بیشترین استفاده از ماژول Nodejs ماژول ‘http” است. این ویژگی های مورد نیاز برای انتقال داده ها از طریق پروتکل HTTP را تعریف می کند. ما به آن نیاز داریم تا سرور پروکسی خود را که برای درخواست های HTTP خدمت می کند ، توسعه دهیم.
شما می توانید ماژول Node.js را با عملکرد "نیاز" وارد کنید.
const http = need ('http')؛
ماژول HTTP یک تابع ایجاد کننده سرویس دهنده دارد که می تواند برای ساختن یک سرور وب استفاده شود.
http.createServer (onRequest) .listen (3000) ؛ سرور پروکسی من به پورت 3000 "گوش می دهد. تابع kriServer تابع onRequest را به عنوان استدلالی که در مرحله بعدی برای اجرای آن استفاده خواهیم کرد. تابع onRequest (درخواست ، پاسخ) { console.log ('serve:' + درخواست.url)؛ // کد سرور پروکسی }
عملکرد onRequest مشتری را می گیرد درخواست و پاسخی که می خواهیم به عنوان آرگومان برای مشتری ارسال شود. ما پیاده سازی سرور پروکسی خود را درون تابع onRequest خواهیم نوشت.
بعد ، ما می خواهیم مجموعه ای از مقادیر را به عنوان گزینه تعریف کنیم.
var options = { نام میزبان: 'www.google.com' ، Port: 80، path: request.url، روش: درخواست.method، headers: request.headers }؛
مقادیر بالاتر از گزینه ها توضیحی هستند. در مرحله بعد ، ما درخواست و پاسخ شیء پروکسی را می نویسیم.
var proxy = http. درخواست (گزینه ها ، عملکرد (res) { پاسخ.writeHead (res.statusCode ، res.headers) res.pipe (پاسخ ، { انتهای: true })؛ })؛ درخواست .pipe (پروکسی ، { end: true })؛
می توانید توجه کنید که من در اینجا از لوله ها استفاده کرده ام. لوله ها در کنترل جریانها کارآمد هستند. در یک سرور HTTP مبتنی بر Node.js ، درخواست و پاسخ ها جریان هستند. درخواست یک جریان قابل خواندن است در حالی که پاسخ یک جریان قابل نوشتار است. لوله ها به شما امکان می دهد داده ها را از یک منبع بخوانید و به راحتی به مقصد بنویسید. شما مجبور نیستید جریان را خودتان مدیریت کنید مانند عملکرد Fs.
بگذارید همه کد ها را با هم جمع کنیم.
var http = need ('http')؛ http.createServer (onRequest) .listen (3000)؛ عملکرد onRequest (درخواست ، پاسخ) { کنسول. log ('serve:' + درخواست.url)؛ var options = { نام میزبان: 'www.google.com' ، Port: 80، path: request.url، روش: درخواست.method، headers: درخواست. headers }؛ var proxy = http. درخواست (گزینه ها ، عملکرد (res) { پاسخ.writeHead (res. statusCode، res.headers) res.pipe (پاسخ ، { انتهای: true })؛ })؛ request.pipe (پروکسی ، { end: true })؛ }
همه خوب هستند. وقت آن است که پرونده ما اجرا شود. محتوا را در نام پرونده http_proxy.js کپی کنید و با دستور زیر اجرا کنید.
گره http_proxy.js
این است. اکنون یک سرور پروکسی در حال کار بر روی سرور Ubuntu خود دارید.
تست سرور پروکسی
اجازه دهید از مرورگر Firefox ما برای آزمایش سرور ما استفاده کند. مرورگر خود را باز کنید. آدرس URL / IP را در نوار آدرس با پورت به درستی وارد کنید. اگر این مورد را در همان سرور بررسی می کنید ، باید 127.0.0.1 را به عنوان آدرس IP تایپ کنید. http://127.0.0.1:3000/images/srpr/logo11w.png را در نوار آدرس مرورگرها تایپ کرده و Enter را فشار دهید.
نتیجه گیری
تبریک می گویم! می توانید لوگوی گوگل را در آنجا مشاهده کنید. شما یک پروکسی سرور HTTP کاملاً کارکرده دارید. می توانید این سرور پروکسی را با قابلیت های بسیار زیادی گسترش دهید. می توانید URL های خاصی را که از طریق این سرور پروکسی دسترسی پیدا می کنید ، مسدود کنید. بسیاری موارد دیگر وجود دارد که می توانید تمرین کنید. وکالت مبارک!