ایجاد و بهینه سازی یک Reverse Proxy با استفاده از Nginx
ارسال شده در |
مقدمه
فهرست مطالب این صفحه
Nginx یک سرور وب متن باز است که می تواند به عنوان یک سرور وب کامل، سرور ایمیل، کش و بالانس بار و همچنین به عنوان یک reverse proxy عمل کند. در این مقاله، ما به بررسی کاربرد Nginx به عنوان یک Reverse Proxy می پردازیم. همچنین، راه اندازی، تنظیمات و بهینه سازی آن را بررسی خواهیم کرد.
کاربرد Reverse Proxy
در ابتدا بیایید به بررسی کاربرد Reverse Proxy بپردازیم. Reverse Proxy یک نقطه اتصال بین کاربران و یک یا چند سرور است. کاربران درخواست های خود را به Reverse Proxy می فرستند و این درخواست ها به طور شفاف به سرورهای مربوطه ارجاع می شوند. کاربردهای Reverse Proxy شامل:
Load Balancing: برای تقسیم بار بین چندین سرور و جلوگیری از ازدحام در یک سرور خاص.
کش کردن محتوا: برای کاهش بار بر روی سرورهای اصلی و افزایش سرعت پاسخ به درخواست ها.
SSL Termination: رمزگشایی درخواست های SSL در Reverse Proxy بجای سرور اصلی.
پنهان سازی اطلاعات سرور: برای افزایش امنیت با پنهان کردن اطلاعات سرور اصلی از کاربران.
نصب و راه اندازی Nginx
برای نصب Nginx به عنوان یک Reverse Proxy، ابتدا باید Nginx را نصب کنید. فرض می کنیم که سیستم عامل شما Ubuntu 20.04 است:
ابتدا پکیج های لازم را با دستور زیر به روز کنید:
sudo apt update
sudo apt install nginx
sudo systemctl status nginx
اگر Nginx با موفقیت نصب شده باشد، شما باید بتوانید وضعیت فعال سرویس را ببینید.
تنظیم Nginx به عنوان Reverse Proxy
برای تنظیم Nginx به عنوان یک Reverse Proxy، شما باید یک فایل تنظیمات در مسیر /etc/nginx/sites-available/ ایجاد کنید.
ابتدا یک فایل تنظیمات جدید ایجاد کنید. ما در اینجا فایلی به نام my_proxy می سازیم:
sudo nano /etc/nginx/sites-available/my_proxy
اکنون، شما می توانید تنظیمات Reverse Proxy را در این فایل وارد کنید. به عنوان یک مثال ساده، فرض کنید که شما می خواهید درخواست هایی که به your_domain.com فرستاده می شود، به یک سرور در نشانی http://your_backend_server ارجاع شود:
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://your_backend_server;
}
}
پس از ویرایش فایل، آن را ذخیره کنید و خارج شوید.
فعال سازی تنظیمات Reverse Proxy
بعد از ایجاد فایل تنظیمات، شما باید آن را در Nginx فعال کنید:
ابتدا یک لینک سمبولیک از فایل تنظیمات شما به دایرکتوری sites-enabled ایجاد کنید:
sudo ln -s /etc/nginx/sites-available/my_proxy /etc/nginx/sites-enabled/
sudo nginx -t
اگر هیچ خطایی وجود نداشته باشد، شما باید پیام “configuration file /etc/nginx/nginx.conf test is successful” را ببینید.
در نهایت، تغییرات را با بازنگری Nginx اعمال کنید:
sudo systemctl reload nginx
بهینه سازی Nginx
تنظیمات کش: یکی از روش های بهینه سازی Nginx، تنظیم کش است. در فایل تنظیم تنظیمات Reverse Proxy در Nginx، شما می توانید استفاده از کش برای بهبود عملکرد و سرعت پاسخ به درخواست ها را در نظر بگیرید. برای این منظور، می توانید از ماژول های مختلفی مانند proxy_cache و proxy_cache_key استفاده کنید.
فعال سازی کش در Nginx: برای فعال سازی کش در Nginx، شما نیاز به افزودن تنظیمات زیر به بخش مربوط به مکان location مربوطه دارید:
proxy_cache my_cache;
proxy_cache_key $scheme$proxy_host$request_uri;
proxy_cache_valid 200 301 302 5m;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
در اینجا، my_cache نام کش است که شما می توانید هر نام دلخواه دیگری را استفاده کنید.
proxy_cache_key تنظیم کننده کلید استفاده شده برای ذخیره سازی محتوا در کش است.
proxy_cache_valid نشان می دهد که محتوای کش شده تا چه مدت معتبر است.
proxy_cache_use_stale تنظیمات استفاده از محتوای کش شده در صورت بروز خطا در سرور اصلی.
پاک کردن کش: در صورت نیاز به پاک کردن کش و تجدید سازی محتوا، شما می توانید از دستور زیر استفاده کنید:
sudo nginx -s cache purge=URL
در اینجا، URL آدرس URL مورد نظر است که می خواهید کش آن پاک شود.
فشرده سازی محتوا: فشرده سازی محتوا می تواند حجم داده های انتقالی را کاهش داده و سرعت بارگیری را بهبود بخشد. برای فعال سازی فشرده سازی محتوا در Nginx، به فایل تنظیمات خود اضافه کنید:
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on;
این تنظیمات gzip را فعال می کند و سطح فشرده سازی، حداقل طول محتوا برای فشرده سازی و نوع فایل هایی که باید فشرده شوند را تعیین می کند.
با استفاده از این روش ها، شما می توانید عملکرد Nginx خود را بهینه کنید و پاسخگویی سریع تر به درخواست های کاربران را تجربه کنید. امیدوارم این مقاله برای شما مفید بوده باشد.
درست است که برای بالابردن کارایی و ایمنی وب سایت خود، استفاده از Nginx به عنوان Reverse Proxy حائز اهمیت است. اما برای استفاده بهینه از این سرویس، شما نیاز به سروری قوی و قابل اعتماد دارید. ما اینجا در سایت دیاکو وب، یکی از برترین ارائه دهندگان سرویس های سرور مجازی VPS هستیم که می تواند به شما کمک کند تا سایت خود را با کمترین دردسر و بیشترین امکانات راه اندازی کنید. با توجه به متن مقاله، اگر به دنبال یک سرور قدرتمند و پایدار برای پیاده سازی Reverse Proxy هستید، حتما به خدمات ما سری بزنید.
دیدگاهتان را بنویسید