در اینجا به نحوه تنظیم و پیکربندی ماژول ngx_http_proxy_module
نگاهی خواهیم انداخت. Nginx به عنوان یک سرور وب و پروکسی معکوس معروف است که به خاطر عملکرد بالا و مصرف پایین منابع محبوب شده است. یکی از قابلیتهای مهم Nginx، توانایی آن در پروکسی کردن درخواستها به سرورهای دیگر است. این ویژگی به مخصوصاً برای سایتهایی که نیاز به بارگذاری متوازن و مقیاسپذیری دارند، بسیار کاربردی است.
ماژول ngx_http_proxy_module
به صورت پیشفرض در Nginx موجود است و به پردازش درخواستها و ارسال آنها به سرورهای دیگر کمک میکند. یکی از پارامترهای مهم برای این ماژول، proxy_headers_hash_bucket_size
میباشد. این پارامتر برای تعیین سایز سطل (bucket size) هدرهای پروکسی استفاده میشود و میتواند بر عملکرد Nginx تاثیر بگذارد.
اگر درخواستها یا هدرهای زیادی از کلاینتها دریافت میکنید، نیاز است که مقدار proxy_headers_hash_bucket_size
را به درستی تنظیم کنید. در غیر این صورت، ممکن است نوار هدرها (header) صحیح پردازش نشود و در نتیجه مشکلاتی در تحویل درخواستها به وجود آید.
در اینجا یک مثال از چگونگی تنظیم proxy_headers_hash_bucket_size
در فایل تنظیمات Nginx آورده شده است. قبل از ایجاد هر تغییری، حتماً از فایل تنظیمات خود نسخه پشتیبان تهیه کنید.
http {
proxy_headers_hash_bucket_size 128;
server {
location / {
proxy_pass http://backend;
}
}
}
در این تنظیمات، ما سایز سطل هدرهای پروکسی را به 128 مشخص کردهایم و عملیات پروکسی را به سرور دیگر (در اینجا backend
) انجام میدهیم.
توضیحات کد
http {
در ابتدا، ما درون بلاک
http
قرار داریم که تنظیمات مربوط به کلیه درخواستهای HTTP را شامل میشود. proxy_headers_hash_bucket_size 128;
در این خط، سایز سطل هدرهای پروکسی را به 128 بایت تعیین میکنیم.
server {
در اینجا، بلاک
server
آغاز میشود که مشخصات سرور را تنظیم میکند. location / {
این بلاک
location
برای مشخص کردن URLهای خاص تنظیم شده است. در اینجا، تمام درخواستها از ریشه (/
) پردازش میشوند. proxy_pass http://backend;
در نهایت، این خط مشخص میکند که درخواستها به سرور
backend
ارسال شوند. }
}
}
بلاک
location
را بسته و سپس بلاک server
و در نهایت بلاک http
را کامل میکنیم.