نحوه راه اندازی یک پروکسی معکوس (گام به گام برای Nginx و Apache)
حسام یارمحمدی
یک پروکسی معکوس در مقابل یک وب سرور قرار می گیرد و همه درخواست ها را قبل از رسیدن به سرور اصلی دریافت می کند. به طور مشابه با یک پروکسی فوروارد کار می کند، با این تفاوت که در این مورد سرور وب از پروکسی استفاده می کند تا کاربر یا مشتری. پروکسیهای معکوس معمولاً برای افزایش عملکرد، امنیت و قابلیت اطمینان وب سرور استفاده میشوند.
به عنوان مثال، میتوانید یک سایت غیر وردپرسی داشته باشید که در example.comدامنه روی سرور A میزبانی میشود و وبلاگ آن در وردپرس در URLی با نشانی example.com/blog میزبانی شده در سرور B اجرا میشود. میتوانید با افزودن یک پروکسی معکوس برای سرور میزبان سایت اصلی خود، به این هدف برسید. می توانید پروکسی معکوس را پیکربندی کنید تا درخواست ها را به وبلاگ به سرور دیگری هدایت کند.
در این مقاله از ایوسی، اصول اولیه سرورهای پروکسی معکوس، نحوه عملکرد آنها، مزایای اصلی آنها و نحوه استفاده از آنها برای افزایش سرعت و امنیت سایت وردپرس خود را خواهید آموخت.
بیایید شروع کنیم!
اگر میخواهید آدرس IP خود را از وبسایتهایی که بازدید میکنید ناشناس کنید، میتوانید ابتدا از یک سرور پروکسی برای ارسال تمام درخواستهای خود به آن استفاده کنید. درخواست های شما را به DNS Resolver ارسال می کند و سپس منابع وب سایت را از سرور اصلی خود دانلود می کند.
پس از آن، آن منابع را به دستگاه شما منتقل می کند. به این پروکسی فوروارد می گویند.
چگونه یک سرور پروکسی فوروارد کار می کند
شما کاملاً از وب سایت پنهان هستید زیرا فکر می کند درخواست شما از پروکسی فوروارد نشات می گیرد.
جدا از افزایش حریم خصوصی کاربر، یک پروکسی فوروارد عمدتاً برای دور زدن محدودیتهای محتوای جغرافیایی استفاده میشود. به عنوان مثال، اگر میخواهید ویدیویی را تماشا کنید که در منطقه شما مسدود شده است، میتوانید از یک پروکسی فوروارد با یک آدرس IP که ویدیو برای مشاهده در آن در دسترس است استفاده کنید.
یک پروکسی فوروارد تقریباً مانند یک شبکه خصوصی مجازی (VPN) کار می کند، اما آنها فناوری های متمایز با موارد استفاده منحصر به فرد هستند (هر چند گاهی اوقات ممکن است همپوشانی داشته باشند).
سرور پروکسی معکوس در مقابل سرور پروکسی فوروارد
یک سرور پروکسی معکوس به عنوان جلویی برای سرور مبدا عمل می کند تا ناشناس ماندن و امنیت را افزایش دهد، درست مانند اینکه چگونه یک کاربر/مشتری می تواند از یک پروکسی فوروارد برای رسیدن به همان هدف استفاده کند. این تضمین می کند که هیچ کاربر یا مشتری مستقیماً با سرور اصلی ارتباط برقرار نمی کند.
چگونه یک سرور پروکسی معکوس کار می کند
تفاوت بین یک پروکسی فوروارد و یک پروکسی معکوس جزئی است، اما آنها متفاوت عمل می کنند.
هر دو می توانند با هم کار کنند زیرا هیچ همپوشانی بین عملکرد آنها وجود ندارد. به طور معمول، کاربران / مشتریان از یک پروکسی فوروارد استفاده می کنند، در حالی که سرورهای مبدا از یک پروکسی معکوس استفاده می کنند.
پروکسی فوروارد در مقابل سرورهای پروکسی معکوس
از آنجایی که یک مدیر سرور می تواند نحوه عملکرد پروکسی معکوس را کنترل کند، می توانید از آن برای فعال کردن بسیاری از ویژگی های مفید استفاده کنید.
در ادامه این پست تمام مزایای آن را لیست خواهیم کرد.
چرا از پروکسی معکوس استفاده کنیم؟
بسیاری از کسبوکارها، بهویژه شرکتهای بزرگ، از وبسایتهای سفارشی استفاده میکنند که متناسب با نیازهای منحصربهفرد آنها ساخته شدهاند و در وردپرس اجرا نمیشوند. برخی از نمونه ها شامل وب سایت های بانک و بیمه است.
در موارد دیگر، یک کسب و کار ممکن است سایت خود را روی یک سرویس خارجی میزبانی کند که به آنها اجازه نصب هیچ نرم افزار خارجی (مثلاً وردپرس) را نمی دهد. معمولاً اینها خرده فروشان کوچک تا متوسط هستند که از یک پلت فرم تجارت الکترونیک مانند Shopify استفاده می کنند.
از آنجایی که ساب دامنه ها به عنوان یک دامنه منحصر به فرد رفتار می کنند، می تواند بر سئو سایت شما تأثیر بگذارد. حتی اگر گوگل با هر دو زیر دامنه و زیر شاخه ها به یک اندازه رفتار می کند، تلاش بیشتری برای بهینه سازی یک وب سایت برای رتبه بندی موتورهای جستجو در صورتی که روی یک زیر دامنه میزبانی می شود نسبت به زمانی که در یک زیر شاخه میزبانی می شود، نیاز دارد.
دو رویکرد برای میزبانی وبلاگ در یک وب سایت
گوگل مجددا تاکید کرده است که با هر دو زیردامنه و زیر شاخه ها به یک اندازه رفتار می کند، اما برخی از کارشناسان سئو با آن مخالف هستند. و حتی اگر بر سئوی سایت تأثیری نگذارد، نگهداری سایتی که در یک زیردایرکتوری میزبانی میشود سادهتر است.
به همین دلیل است که می توانید از یک پروکسی معکوس برای تغییر مسیر درخواست ها به وبلاگ سایت که در یک سرور جداگانه میزبانی شده است استفاده کنید. به عنوان مثال، یک بانک میتواند وبسایت اصلی خود را به صورت ایمن روی سرورهای خود میزبانی کند، اما همچنین میتواند وبلاگ مبتنی بر وردپرس خود را به طور جداگانه در میزبان وردپرس مدیریت شده میزبانی کند.
نمونه ای از یک مورد استفاده از پروکسی معکوس
یکی کردن دو سایت مختلف تحت یک نام دامنه یکی از مزایای کلیدی استفاده از پروکسی معکوس است. این به برندها کمک می کند تا سایت های خود را منظم، حرفه ای نگه دارند و اعتبار خود را حفظ کنند.
مزایای استفاده از پروکسی معکوس
علاوه بر موارد استفاده فوق، پراکسیهای معکوس مزایای دیگری نیز ارائه میکنند. بخش زیر برخی از مزایای عمده آنها را مورد بحث قرار می دهد.
تعادل بار
یک سرور منشاء واحد نمی تواند تمام ترافیک ورودی یک وب سایت با میلیون ها بازدیدکننده منحصر به فرد روزانه را مدیریت کند. در این موارد، می توانید ترافیک را به صورت هوشمند بین مجموعه ای از سرورهای متعدد توزیع کنید. معمولاً همه سرورها محتوای یکسانی را میزبانی می کنند تا یک نقطه شکست را از بین ببرند و وب سایت را قابل اعتمادتر کنند.
یک پروکسی معکوس یک راه عالی برای تنظیم این است زیرا می تواند ترافیک ورودی را قبل از رسیدن به سرور مبدا دریافت کند. اگر سرور مبدا بیش از حد بارگذاری شود یا به طور کامل از کار بیفتد، می تواند ترافیک را بدون تأثیر بر عملکرد سایت به سرورهای دیگر توزیع کند.
پراکسیهای معکوس همچنین میتوانند درخواستهای دریافتی را به چندین سرور هدایت کنند و هر سرور عملکرد خاصی را انجام میدهد که برای آن بهینهسازی شده است. سپس پروکسی معکوس میتواند پاسخها را از همه سرورها جمعآوری کرده و به مشتری تحویل دهد.
از آنجایی که ما از اکثر پراکسیهای معکوس محبوب عمدتاً برای متعادلسازی بار استفاده میکنیم، به آنها Load Balancer نیز میگویند .
تعادل بار جهانی سرور (GSLB)
GSLB یک روش متعادل کننده بار پیشرفته برای توزیع ترافیک وب سایت در میان بسیاری از سرورهایی است که به صورت استراتژیک در سراسر جهان قرار دارند. این معمولاً از طریق تکنیک مسیریابی anycast انجام می شود، جایی که پروکسی معکوس گره سرور را بر اساس سریع ترین زمان سفر بین مشتری و سرور انتخاب می کند.
GSLB نه تنها قابلیت اطمینان و امنیت سایت را به میزان قابل توجهی افزایش می دهد، بلکه زمان تأخیر و بارگذاری را نیز کاهش می دهد و در نتیجه تجربه کاربر را افزایش می دهد. میتوانید از GSLB با سایر تکنیکهای بهینهسازی شبکه مانند Spoon Feeding برای آزاد کردن بیشتر منابع محاسباتی سرورهای مبدا استفاده کنید.
اگرچه میتوانید Global Server Load Balancing را به صورت دستی بر روی سرور خود تنظیم کنید، اما معمولاً توسط CDNهای اختصاصی مانند Cloudflare و KeyCDN مراقبت میشود.
امنیت پیشرفته
پراکسی های معکوس می توانند آدرس IP و سایر ویژگی های سرورهای مبدا را پنهان کنند. بنابراین، سرور اصلی وب سایت شما می تواند ناشناس بودن خود را بهتر حفظ کند و امنیت آن را به میزان قابل توجهی افزایش دهد.
از آنجایی که پروکسی معکوس تمام ترافیک را قبل از رسیدن به سرور اصلی دریافت می کند، هر مهاجم یا هکری برای هدف قرار دادن وب سایت شما با تهدیدات امنیتی مانند حملات DDoS دشوارتر خواهد بود .
شما می توانید از یک فایروال سختگیر برای تقویت پروکسی معکوس با امنیت بیشتر در برابر حملات سایبری رایج استفاده کنید. بدون نصب پراکسی معکوس، حذف بدافزار یا شروع حذف کار دشواری است.
یک پروکسی معکوس مانند HAProxy می تواند احراز هویت اولیه دسترسی HTTP را به وب سروری که آن را فعال نکرده است اضافه کند. همچنین می توانید از یک پروکسی معکوس برای افزودن احراز هویت متمرکز برای انواع مختلف درخواست ها استفاده کنید.
ذخیره سازی قدرتمند
شما می توانید از یک پروکسی معکوس برای اهداف شتاب وب با ذخیره محتوای ثابت و پویا استفاده کنید. این می تواند بار روی سرور مبدا را کاهش دهد و در نتیجه یک وب سایت سریعتر ایجاد کند.
به عنوان مثال، اگر سرور اصلی شما در ایالات متحده آمریکا است و یک کاربر از اروپا از وب سایت شما بازدید می کند، می توانید نسخه کش شده سایت خود را از یک سرور پروکسی معکوس در اروپا ارائه دهید. از آنجایی که پروکسی معکوس نسبت به سرور اصلی به کاربر نزدیکتر است، بارگذاری وبسایت زمان کمتری میبرد و عملکرد فوقالعادهای دارد.
Varnish و Nginx FastCGI نمونه های برجسته ای از پراکسی های معکوس هستند که برای ذخیره محتوای وب استفاده می شوند.
فشرده سازی برتر
پاسخ های سرور از پهنای باند زیادی استفاده می کنند. فشردهسازی پاسخهای سرور (مثلاً با gzip) قبل از ارسال آنها به مشتری میتواند مقدار پهنای باند مورد نیاز را کاهش دهد و سرعت پاسخهای سرور را در شبکه افزایش دهد.
یک پروکسی معکوس برای فشردهسازی پاسخهای سرور ایدهآل است زیرا بین سرورهای مبدا و مشتری قرار میگیرد.
رمزگذاری SSL بهینه شده
رمزگذاری و رمزگشایی درخواستهای SSL/TLS برای هر مشتری میتواند برای سرور مبدأ بسیار سخت باشد. یک پروکسی معکوس می تواند این کار را انجام دهد تا منابع سرور مبدا را برای کارهای مهم دیگر، مانند ارائه محتوا، آزاد کند.
یکی دیگر از مزایای بارگذاری رمزگذاری و رمزگشایی SSL/TSL، کاهش تأخیر برای کلاینت هایی است که از نظر جغرافیایی از سرور مبدا فاصله دارند.
همچنین میتوانید برای بهینهسازی بیشتر این کار، یک پروکسی معکوس با سختافزار شتابدهنده تخصصی SSL/TLS انتخاب کنید. چنین پروکسی معکوس، پروکسی خاتمه SSL/TLS نامیده می شود . برخی از سرورها مانند Varnish از پروتکل های SSL/TSL پشتیبانی نمی کنند، بنابراین یک پروکسی معکوس خاتمه SSL/TSL می تواند به ایمن سازی ترافیک عبوری از آنها کمک کند.
تست A/B بهتر
اکثر ابزارهای تست A/B شما را ملزم به استفاده از کتابخانه های خارجی جاوا اسکریپت برای بارگذاری عملکردهایشان می کنند. با این حال، بارگذاری اسکریپت های شخص ثالث می تواند زمان بارگذاری صفحه شما را کاهش دهد و تجربه ای متلاطم برای کاربران ایجاد کند.
در عوض، می توانید از یک پروکسی معکوس برای ایجاد دو جریان مجزا در سطح خود سرور استفاده کنید. به عنوان مثال، میتوانید از Nginx split_clients یا sticky routeمتدها برای کنترل تغییر مسیر ترافیک استفاده کنید.
برای کسب اطلاعات بیشتر در مورد انجام تست A/B با پراکسی معکوس می توانید به آموزش های Nginx و freeCodeCamp مراجعه کنید.
نظارت و ثبت ترافیک
یک پروکسی معکوس هر درخواستی را که از طریق آن انجام می شود را دریافت می کند. از این رو، می توانید از آنها به عنوان یک مرکز مرکزی برای نظارت و ثبت ترافیک استفاده کنید. حتی اگر از چندین وب سرور برای میزبانی تمام اجزای وب سایت خود استفاده می کنید، استفاده از یک پروکسی معکوس نظارت بر تمام داده های ورودی و خروجی از سایت شما را آسان تر می کند.
محبوب ترین پروکسی های معکوس
طبق W3Techs ، تقریباً ۸۳٪ از وب سایت ها از خدمات پروکسی معکوس که نظارت می کنند استفاده نمی کنند.
آمار پراکسی های معکوس استفاده شده توسط وب سایت ها (منبع: W3Techs.com)
از ۱۷ درصد وبسایتهایی که از پروکسی معکوس استفاده میکنند (فهرست شده در بالا)، متوجه خواهید شد که بیشتر آنها CDN هستند. به این دلیل که اکثر پراکسی های معکوس وجود خود را به طور پیش فرض به عنوان یک اقدام احتیاطی امنیتی پنهان می کنند. از این رو، نمی توانید برای یافتن اینکه کدام پروکسی معکوس محبوب ترین هستند، به خدمات نظارت بر وب سایت مانند W3Techs اعتماد کنید.
بر اساس تحقیقات و تجربه ما، محبوب ترین پراکسی های معکوس که امروزه استفاده می شوند عبارتند از:
Nginx
Nginx یک وب سرور منبع باز است که می تواند به عنوان یک پروکسی معکوس نیز عمل کند. جدا از اینکه برای میزبانی وب سایت ها استفاده می شود، همچنین یکی از پرکاربردترین راه حل های پراکسی معکوس و متعادل کننده بار است. بر اساس گزارش نت کرافت، بیش از ۴۷۹ میلیون وب سرور در دسامبر ۲۰۱۹ از Nginx استفاده می کردند و آن را به رهبر در سهم بازار وب سرور تبدیل می کرد.
سهم بازار وب سرور از همه سایت ها (منبع: نت کرافت)
Nginx تمام مزایای پروکسی معکوس که در بالا مورد بحث قرار گرفت، به علاوه موارد دیگر را فراهم می کند. عملکرد وب، امنیت، قابلیت اطمینان و مقیاس پذیری را بهبود می بخشد. میتوانید Nginx را با استفاده از فایل پیکربندی آن پیکربندی کنید، که همچنین قابل بارگیری مجدد است.
اما میتوانید از Nginx Plus، یک پیشنهاد تجاری، برای دسترسی به گزینههای پیکربندی مبتنی بر API و سایر ویژگیهای مناسب برای وبسایتهای سازمانی بزرگ استفاده کنید.
راه اندازی Nginx به عنوان یک پروکسی معکوس اولیه ساده است. Nginx همچنین دستورالعمل های مختلفی را در اختیار شما قرار می دهد تا پروکسی معکوس سرور خود را مطابق با نیاز خود سفارشی کنید. در بخش بعدی به نحوه انجام این کار خواهیم پرداخت.
لاک زدن
Varnish یک پروکسی معکوس HTTP منبع باز با موتور کش داخلی است. این در درجه اول برای وب سایت های پربازدید طراحی شده است که محتوای پویا را ارائه می دهند. همچنین می توانید از Varnish به عنوان متعادل کننده بار، فایروال برنامه وب (WAF) و یک سرور احراز هویت و مجوز لبه استفاده کنید.
این بر روی تمام نسخههای مدرن لینوکس و FreeBSD کار میکند و عمدتاً بهعنوان پیشفرض برای سرورهای وب Nginx یا Apache استفاده میشود. زبان پیکربندی Varnish قدرتمند و بسیار انعطافپذیر (VCL) به شما امکان میدهد ویژگیهای مختلفی مانند رسیدگی به درخواستهای HTTP، کش کردن و اتصال به یک یا چند سرور وب را تعریف کنید.
به همین دلیل، بسیاری از CDN ها از Varnish به عنوان پایه اصلی خود برای ارائه سریع محتوا استفاده می کنند.
Varnish همچنین از Edge Side Includes (ESI) پشتیبانی میکند، زبانی که به شما کمک میکند تا از بخشهای یک صفحه وب در سایر صفحات وب استفاده مجدد کنید. اگر وبسایت شما از محتوای تکراری زیادی در صفحات مختلف استفاده میکند، ESI میتواند به شما کمک کند تا با ذخیره کردن بخشهایی که اغلب استفاده میکنید، سرعت بارگذاری صفحه سایت خود را افزایش دهید.
Apache Traffic Server یک سرور پروکسی کش منبع باز است. این به دلیل ویژگی های سریع و مقیاس پذیر آن محبوب است. این یک محصول تجاری بود که توسط Yahoo! مدتها پیش، اما آنها آن را منبع باز ساختند و برای نگهداری به بنیاد آپاچی اهدا کردند.
چندین شبکه محتوای اصلی و CDN مانند Comcast، Akamai، LinkedIn، Yahoo و Apple از Apache Traffic Server برای تقویت فناوری خود استفاده می کنند.