ماژول ngx_http_proxy_module یکی از اجزای مهم Nginx است که به ما این امکان را میدهد تا درخواستهای HTTP را به سرورهای دیگر ارسال کنیم. یکی از ویژگیهای جالب این ماژول، قابلیت استفاده از کش است. کش کردن درخواستها به ما کمک میکند تا بار روی سرورها را کاهش دهیم و سرعت بارگذاری وبسایت را افزایش دهیم.
این ماژول به ما اجازه میدهد تا درخواستها را برای چندین روش HTTP مشخص کنیم. به عنوان مثال، میتوانیم تعیین کنیم که کدام درخواستها باید کش شوند و کدام یک کش نشوند. این کار به ما این امکان را میدهد که کنترل بیشتری روی عملکرد سرور و استفاده از منابع داشته باشیم.
ما با استفاده از دستور proxy_cache_methods
میتوانیم این روشها را مشخص کنیم. این دستور به ما اجازه میدهد تا متدهای HTTPی که باید کش شوند را تعریف کنیم. به طور پیشفرض، فقط درخواستهای GET و HEAD کش میشوند، اما با استفاده از این دستور میتوانیم دیگر متدها را نیز اضافه کنیم.
برای مثال، فرض کنید که میخواهیم درخواستهای POST را نیز کش کنیم. این کار را میتوانیم به سادگی با تایپ کردن روشهای مورد نظر در دستور proxy_cache_methods
انجام دهیم. این قابلیت برای برنامههایی که به شدت به کش وابسته هستند، بسیار مفید است.
location /api {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_methods GET HEAD POST;
}
در کد بالا، ما درون بلاک location
یک پروکسی برای درخواستهای به آدرس /api
تعریف کردهایم. ابتدا، با استفاده از دستور proxy_pass
، درخواستها به سرور backend
ارسال میشوند. سپس با استفاده از proxy_cache
کش را فعال کردهایم و در نهایت با proxy_cache_methods
مشخص کردهایم که متدهای GET، HEAD و POST کش شوند.
توضیحات مراحل کد:
خط 1:
location /api
- تعریف یک بلاک برای مدیریت درخواستهای آدرس /api
.خط 2:
proxy_pass http://backend;
- ارسال درخواست به آدرس سرور backend
.خط 3:
proxy_cache my_cache;
- فعال کردن کش با نام my_cache
.خط 4:
proxy_cache_methods GET HEAD POST;
- مشخص کردن متدهای کش شده: GET، HEAD و POST.