درباره ماژول ngx_http_keyval_module در nginx
ماژول ngx_http_keyval_module یک ابزار بسیار کارآمد در nginx است که به ما امکان میدهد تا اطلاعات کلید و مقدار (key-value) را ذخیره و مدیریت کنیم. این ماژول به ویژه در کار با دادههای موقتی و کشکردن درخواستها مفید است و میتواند در بسیاری از سناریوهای مختلف مورد استفاده قرار گیرد. با استفاده از این ماژول، میتوانیم دادهها را در ناحیههای خاصی به نام keyval_zone ذخیره سازی کنیم.
در واقع، شما میتوانید از keyval_zone برای ارتباط بین درخواستها و ذخیرهسازی مقادیر مربوط به هر کاربر، آدرس IP یا حتی مسیر URL استفاده کنید. به عنوان نمونه، اگر بخواهیم تعداد بازدید از یک صفحه خاص را در طول زمان ذخیره کنیم، میتوانیم از این ماژول استفاده کنیم. این موضوع به ما کمک میکند تا عملکرد وبسایتهای خود را بهینهسازی کنیم و به راحتی اطلاعات ارزشمندی را جمعآوری کنیم.
استفاده از ماژول ngx_http_keyval_module بسیار ساده است. شما تنها کافیست یک keyval_zone را تعریف کنید و سپس از آن در تنظیمات nginx خود استفاده کنید. در ادامه، به شما نحوه انجام این کار را نشان خواهیم داد و نمونه کدهای مربوطه را ارائه خواهیم کرد.
با در نظر گرفتن همه این نکات، ماژول ngx_http_keyval_module به یکی از ابزارهای کلیدی برای توسعهدهندگان در nginx تبدیل شده است. با کمک این ماژول، نه تنها میتوانید اطلاعات ارزشمندی را جمعآوری کنید بلکه میتوانید به شیوههای مختلف از آنها بهرهبرداری کنید. حالا بیایید نگاهی به تنظیمات و نحوه استفاده از این ماژول بیندازیم.
# تعریف zone برای ذخیرهسازی اطلاعات key-value
keyval_zone my_zone 10m;
# استفاده از keyval در سمت سرور
server {
location / {
# دریافت مقدار کلید
set $my_key_value $keyval;
# تعیین و ذخیره مقدار کلید
keyval_set my_key_value 1;
}
}
توضیح کد
کد:
keyval_zone my_zone 10m;
توضیح: در این خط، یک ناحیه به نام my_zone با ظرفیت 10 مگابایت برای ذخیرهسازی اطلاعات key-value تعریف میکنیم.
کد:
server {
توضیح: در این بین، ما یک بلوک سرور جدید را آغاز میکنیم، که مشخصات مربوط به وبسایت را در آن قرار خواهیم داد.
کد:
location / {
توضیح: تنظیمات مکان برای درخواستهایی که به ریشه وبسایت (/) میآیند. اینجا تنظیمات خاص این محل را مینویسیم.
کد:
set $my_key_value $keyval;
توضیح: ما متغیری به نام my_key_value ایجاد میکنیم که مقدار آن را از keyval میخوانیم.
کد:
keyval_set my_key_value 1;
توضیح: ما مقدار کلید my_key_value را برابر با 1 تنظیم میکنیم و این مقدار در ناحیه keyval_zone ذخیره میشود.