$lang['tuto'] = "ട്യൂട്ടോറിയലുകൾ"; ?> ഡോക്കറിൽ Nginx റിവേഴ്സ്

ഡോക്കറിൽ Nginx റിവേഴ്സ് പ്രോക്സി ഉപയോഗിച്ച് കീക്ലോക്ക് v26 കോൺഫിഗർ ചെയ്യുന്നു: വിവിധ മേഖലകളിലെ കൺസോൾ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു

Temp mail SuperHeros
ഡോക്കറിൽ Nginx റിവേഴ്സ് പ്രോക്സി ഉപയോഗിച്ച് കീക്ലോക്ക് v26 കോൺഫിഗർ ചെയ്യുന്നു: വിവിധ മേഖലകളിലെ കൺസോൾ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു
ഡോക്കറിൽ Nginx റിവേഴ്സ് പ്രോക്സി ഉപയോഗിച്ച് കീക്ലോക്ക് v26 കോൺഫിഗർ ചെയ്യുന്നു: വിവിധ മേഖലകളിലെ കൺസോൾ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു

Nginx, Docker എന്നിവ ഉപയോഗിച്ച് കീക്ലോക്ക് കൺസോൾ പിശകുകൾ മറികടക്കുന്നു

Nginx റിവേഴ്‌സ് പ്രോക്‌സി ഉപയോഗിച്ച് ഡോക്കർ കണ്ടെയ്‌നറിൽ കീക്ലോക്ക് സജ്ജീകരിക്കുന്നത് സുരക്ഷിതമായ ആക്‌സസ് മാനേജ് ചെയ്യുന്നതിനുള്ള ശക്തമായ കോൺഫിഗറേഷനായിരിക്കാം, പക്ഷേ ഇത് വെല്ലുവിളികളില്ലാതെ വരില്ല. 🐳 കീക്ലോക്ക് ഡാറ്റാബേസുകൾ മൈഗ്രേറ്റ് ചെയ്യുമ്പോൾ അല്ലെങ്കിൽ ഒന്നിലധികം മേഖലകൾ കൈകാര്യം ചെയ്യുമ്പോൾ, അപ്രതീക്ഷിതമായ പിശകുകൾ പലപ്പോഴും ഉണ്ടാകാം, ഇത് അഡ്മിനിസ്ട്രേറ്റർമാർക്ക് ആശയക്കുഴപ്പം സൃഷ്ടിക്കുന്നു.

ഈ സാഹചര്യം Keycloak v19.0.2-ൽ നിന്ന് Keycloak v26-ലേക്കുള്ള മൈഗ്രേഷനെ വിവരിക്കുന്നു, ഈ സമയത്ത് ലോഗിൻ ചെയ്തതിന് ശേഷം എല്ലാ മേഖലകളിലും ഒരു "പിശക് സന്ദേശം നിർണ്ണയിക്കാൻ കഴിയുന്നില്ല". Nginx ലോഗുകൾ, കീക്ലോക്ക് പിശക് ലോഗുകൾ എന്നിവയിലൂടെ പ്രശ്നം ട്രാക്ക് ചെയ്യുന്നത് പരാജയപ്പെട്ട HTTP അഭ്യർത്ഥന കാണിച്ചു.

സമാന സജ്ജീകരണങ്ങളിൽ, തെറ്റായി കോൺഫിഗർ ചെയ്‌ത പ്രോക്സി അല്ലെങ്കിൽ നെറ്റ്‌വർക്കിംഗ് ലെയറിന് "502 മോശം ഗേറ്റ്‌വേ" പിശകുകൾ ഉണ്ടാകാം, സാധാരണയായി Nginx അല്ലെങ്കിൽ Docker എങ്ങനെ Keycloak-ലേക്ക് അഭ്യർത്ഥിക്കുന്നു എന്നതിലെ പ്രശ്നങ്ങൾ കാരണം. കീക്ലോക്ക് തടസ്സങ്ങളില്ലാതെ പ്രവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ ഈ പ്രശ്‌നത്തിന് പ്രോക്‌സി ക്രമീകരണങ്ങളിലോ എൻവയോൺമെൻ്റ് വേരിയബിളുകളിലോ SSL കോൺഫിഗറേഷനുകളിലോ ക്രമീകരണങ്ങൾ ആവശ്യമായി വന്നേക്കാം.

ഈ ഗൈഡിൽ, കീക്ലോക്കിൽ ഈ പ്രശ്നം പരിഹരിക്കുന്നതിനുള്ള സാധ്യതയുള്ള പരിഹാരങ്ങളിലൂടെ ഞങ്ങൾ സഞ്ചരിക്കും. ഞങ്ങൾ പ്രധാന കോൺഫിഗറേഷനുകൾ അവലോകനം ചെയ്യുകയും പിശക് ലോഗുകൾ വിശകലനം ചെയ്യുകയും Docker-Nginx സജ്ജീകരണത്തിനുള്ളിൽ Keycloak സ്ഥിരപ്പെടുത്താൻ സഹായിക്കുന്ന നിർദ്ദിഷ്ട ക്രമീകരണങ്ങൾ പര്യവേക്ഷണം ചെയ്യുകയും ചെയ്യും. അവസാനത്തോടെ, അത്തരം പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിനും അഡ്മിൻ കൺസോളിലേക്ക് സുഗമവും തടസ്സമില്ലാത്തതുമായ ആക്‌സസ് ഉറപ്പാക്കുന്നതിനുള്ള ഉൾക്കാഴ്ചകൾ നിങ്ങൾക്ക് ലഭിക്കും.

കമാൻഡ് വിവരണം
proxy_pass Nginx-ൽ, proxy_pass ഇൻകമിംഗ് അഭ്യർത്ഥനകൾ റിവേഴ്സ് പ്രോക്സിയിൽ നിന്ന് നിർദ്ദിഷ്ട അപ്സ്ട്രീം സെർവറിലേക്ക് കൈമാറുന്നു (ഈ സാഹചര്യത്തിൽ കീക്ലോക്ക്). റിവേഴ്സ് പ്രോക്സി കോൺഫിഗറേഷനുകളിൽ ഈ കമാൻഡ് നിർണായകമാണ്, കാരണം ഇത് പൊതു ഡൊമെയ്നിൽ നിന്ന് ആന്തരിക സേവനത്തിലേക്കുള്ള റൂട്ട് സ്ഥാപിക്കുന്നു.
proxy_set_header പ്രോക്സിയിലൂടെ കടന്നുപോകുന്ന അഭ്യർത്ഥനകൾക്കായി തലക്കെട്ടുകൾ സജ്ജമാക്കുന്നതിനോ അസാധുവാക്കുന്നതിനോ Nginx കോൺഫിഗറേഷനുകളിൽ ഉപയോഗിക്കുന്നു. X-Forwarded-Proto, X-Real-IP പോലുള്ള കമാൻഡുകൾ, സുരക്ഷിതവും കൃത്യവുമായ കണക്ഷൻ വിവരങ്ങൾ നിലനിർത്തുന്നതിന് നിർണ്ണായകമായ, ക്ലയൻ്റ് ഐപിയും പ്രോട്ടോക്കോളും കീക്ലോക്കിന് ലഭിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുന്നു.
ssl_certificate സുരക്ഷിത HTTPS കണക്ഷനുകൾക്കായി SSL സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിക്കുന്നതിന് Nginx കോൺഫിഗർ ചെയ്യുന്നു. ssl_certificate നിർദ്ദേശം SSL സർട്ടിഫിക്കറ്റ് ഫയലിൻ്റെ സ്ഥാനം വ്യക്തമാക്കുന്നു, ഇത് ക്ലയൻ്റും സെർവറും തമ്മിലുള്ള എൻക്രിപ്റ്റ് ചെയ്ത ആശയവിനിമയം ഉറപ്പാക്കുന്നു.
ssl_certificate_key ssl_certificate-നോടൊപ്പം, ഈ നിർദ്ദേശം SSL സ്വകാര്യ കീ ഫയലിലേക്കുള്ള പാത വ്യക്തമാക്കുന്നു. സുരക്ഷിതമായ ക്ലയൻ്റ് കണക്ഷനുകൾ പ്രവർത്തനക്ഷമമാക്കിക്കൊണ്ട് സെർവറിൻ്റെ ഐഡൻ്റിറ്റി സാധൂകരിക്കുന്നതിന് ഇത് സർട്ടിഫിക്കറ്റുമായി ജോടിയാക്കിയിരിക്കുന്നു.
env_file ഡോക്കർ കംപോസിൽ, ഡാറ്റാബേസ് ക്രെഡൻഷ്യലുകൾ അല്ലെങ്കിൽ കീക്ലോക്ക് ക്രമീകരണങ്ങൾ പോലുള്ള ഒരു ഫയലിൽ നിന്ന് ബാഹ്യ എൻവയോൺമെൻ്റ് വേരിയബിളുകൾ ലോഡ് ചെയ്യാൻ env_file അനുവദിക്കുന്നു, ഡോക്കർ കോൺഫിഗറേഷൻ വൃത്തിയുള്ളതും ഹാർഡ്-കോഡഡ് മൂല്യങ്ങളിൽ നിന്ന് സുരക്ഷിതവുമായി സൂക്ഷിക്കുന്നു.
command: start ഈ ഡോക്കർ കമ്പോസ് കമാൻഡ് കീക്ലോക്ക് കണ്ടെയ്നർ വ്യക്തമായി ആരംഭിക്കുന്നു. സ്റ്റാർട്ട് കമാൻഡ് വ്യക്തമാക്കുന്നത് സ്ഥിരസ്ഥിതി സ്വഭാവങ്ങളെ മറികടക്കാൻ കഴിയും, ഉദ്ദേശിച്ച കോൺഫിഗറേഷനും ആർഗ്യുമെൻ്റുകളും ഉപയോഗിച്ച് കീക്ലോക്ക് സെർവർ ആരംഭിക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നു.
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" $URL) HTTP സ്റ്റാറ്റസ് കോഡ് മാത്രം ക്യാപ്‌ചർ ചെയ്‌ത് കീക്ലോക്കിൻ്റെ എൻഡ്‌പോയിൻ്റിലേക്ക് ഒരു നിശബ്ദ HTTP അഭ്യർത്ഥന നടത്താൻ ഈ ബാഷ് കമാൻഡ് curl ഉപയോഗിക്കുന്നു. പ്രതീക്ഷിക്കുന്ന പ്രതികരണ കോഡിലൂടെ കീക്ലോക്ക് ആക്‌സസ് ചെയ്യാനാകുമോ എന്ന് നിർണ്ണയിക്കുന്ന ആരോഗ്യ പരിശോധനകൾക്കായി ഇത് ഉപയോഗിക്കുന്നു.
assert പൈത്തൺ ടെസ്റ്റ് സ്ക്രിപ്റ്റിൽ, കീക്ലോക്കിൻ്റെ എൻഡ് പോയിൻ്റിൽ നിന്നുള്ള HTTP സ്റ്റാറ്റസ് കോഡ് 200 (ശരി) ആണെന്ന് ഉറപ്പിക്കുന്നു. വ്യവസ്ഥ തെറ്റാണെങ്കിൽ, സ്‌ക്രിപ്റ്റ് ഒരു അസെർഷൻ പിശക് ഉയർത്തുന്നു, ഇത് സ്വയമേവയുള്ള പരിശോധനയ്ക്കും കീക്ലോക്കിൻ്റെ ലഭ്യത സാധൂകരിക്കുന്നതിനും അത്യാവശ്യമാണ്.
docker restart nginx ആരോഗ്യ പരിശോധന പരാജയപ്പെട്ടാൽ Nginx കണ്ടെയ്‌നർ പുനരാരംഭിക്കുന്ന ഒരു ഡോക്കർ CLI കമാൻഡ്. ഇത് Nginx സേവനം പുതുക്കിയതായി ഉറപ്പാക്കുന്നു, Nginx ഉം Keycloak ഉം തമ്മിലുള്ള കണക്ഷൻ പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ സാധ്യതയുണ്ട്.
error_log ഈ Nginx കോൺഫിഗറേഷൻ നിർദ്ദേശം പിശക് സന്ദേശങ്ങൾക്കുള്ള ലോഗ് ഫയൽ വ്യക്തമാക്കുന്നു. ഇത് ഡീബഗ് ലെവലിലേക്ക് സജ്ജീകരിക്കുന്നത് സങ്കീർണ്ണമായ സജ്ജീകരണങ്ങളിൽ പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്, കാരണം ഇത് വിശദമായ ലോഗുകൾ നൽകുന്നു, കീക്ലോക്കുമായുള്ള കണക്ഷൻ പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ സഹായിക്കുന്നു.

കീക്ലോക്കിൻ്റെയും Nginx കോൺഫിഗറേഷൻ്റെയും വിശദമായ തകർച്ച

ഒരു Nginx റിവേഴ്സ് പ്രോക്സിക്ക് പിന്നിൽ Keycloak കോൺഫിഗർ ചെയ്യുന്നതിനായി ഞങ്ങൾ വികസിപ്പിച്ച സ്ക്രിപ്റ്റുകൾ, Keycloak അഡ്മിൻ കൺസോളിലേക്ക് സുരക്ഷിതമായ ആക്സസ് റൂട്ട് ചെയ്യുന്നതിനും കൈകാര്യം ചെയ്യുന്നതിനും നിർണായക പങ്ക് വഹിക്കുന്നു. Nginx കോൺഫിഗറേഷൻ ഫയൽ, ഉദാഹരണത്തിന്, ഒരു വ്യക്തമാക്കുന്നു അപ്സ്ട്രീം കീക്ലോക്കിൻ്റെ ബാക്കെൻഡ് ഐപി വിലാസവും പോർട്ടും നിർവചിക്കുന്ന ബ്ലോക്ക്, അഭ്യർത്ഥനകൾ കൃത്യമായി നയിക്കാൻ Nginx-നെ അനുവദിക്കുന്നു. മറ്റൊരു നെറ്റ്‌വർക്ക് സെഗ്‌മെൻ്റിലോ ഡോക്കർ കണ്ടെയ്‌നറിലോ കീക്ലോക്ക് സേവനം പ്രവർത്തിക്കുന്ന സാഹചര്യങ്ങൾക്ക് ഇത് അത്യന്താപേക്ഷിതമാണ്. പോലുള്ള പ്രോക്സി നിർദ്ദേശങ്ങൾ ഉപയോഗിച്ച് പ്രോക്സി_പാസ്, ഞങ്ങൾ Nginx-നെ ഒരു ഇടനിലക്കാരനായി പ്രവർത്തിക്കാനും ബാഹ്യ അഭ്യർത്ഥനകൾ കൈകാര്യം ചെയ്യാനും കീക്ലോക്കിൻ്റെ ആന്തരിക സേവന എൻഡ്‌പോയിൻ്റിലേക്ക് കൈമാറാനും പ്രാപ്‌തമാക്കുന്നു. ലോഡ് ബാലൻസിംഗിനും സുരക്ഷിതമായ ആക്‌സസിനും റിവേഴ്സ് പ്രോക്സികൾ ആവശ്യമുള്ള ഉൽപ്പാദന പരിതസ്ഥിതികളിൽ ഈ സജ്ജീകരണം സാധാരണയായി കാണപ്പെടുന്നു.

Nginx കോൺഫിഗറേഷനിൽ, ഒന്നിലധികം തലക്കെട്ടുകൾ സജ്ജീകരിച്ചിരിക്കുന്നു proxy_set_header കീക്ലോക്കിന് എല്ലാ ക്ലയൻ്റ് വിവരങ്ങളും കൃത്യമായി ലഭിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കാനുള്ള കമാൻഡുകൾ. ഉദാഹരണത്തിന്, എക്സ്-റിയൽ-ഐപി ഒപ്പം എക്സ്-ഫോർവേഡഡ്-പ്രോട്ടോ ക്ലയൻ്റ് ഐപിയും യഥാർത്ഥ അഭ്യർത്ഥന പ്രോട്ടോക്കോളും കൈമാറാൻ ഉപയോഗിക്കുന്നു. കൃത്യമായ റീഡയറക്‌ട് URL-കൾ സൃഷ്‌ടിക്കാനും സുരക്ഷാ നയങ്ങൾ നിയന്ത്രിക്കാനും Keycloak ഇത് ഉപയോഗിക്കുന്നതിനാൽ ഈ വിവരങ്ങൾ അത്യന്താപേക്ഷിതമാണ്. അത്തരം സജ്ജീകരണങ്ങളിലെ ഒരു സാധാരണ പ്രശ്നം തലക്കെട്ടുകൾ നഷ്‌ടപ്പെടുത്തുന്നതാണ്, കീക്ലോക്ക് ഉപയോക്താക്കളെ ആധികാരികമാക്കാനോ മണ്ഡലങ്ങളെ സാധൂകരിക്കാനോ ശ്രമിക്കുമ്പോൾ പിശകുകളിലേക്ക് നയിച്ചേക്കാം. ഈ തലക്കെട്ടുകൾ വ്യക്തമായി നിർവചിക്കുന്നതിലൂടെ, അഭ്യർത്ഥനകൾ ശരിയായി പ്രോസസ്സ് ചെയ്യുന്നതിന് ആവശ്യമായ സന്ദർഭം കീക്ലോക്കിന് ലഭിക്കുന്നുണ്ടെന്ന് അഡ്മിനിസ്ട്രേറ്റർമാർ ഉറപ്പാക്കുന്നു. ഈ സമീപനം അഭ്യർത്ഥനകൾ എങ്ങനെ കൈകാര്യം ചെയ്യുന്നു എന്നതിലെ സുരക്ഷയും സ്ഥിരതയും വർദ്ധിപ്പിക്കുന്നു.

കീക്ലോക്കിനായി ഞങ്ങൾ സൃഷ്ടിച്ച ഡോക്കർ കമ്പോസ് ഫയൽ ഒരു ഉപയോഗിച്ച് വിന്യാസം ലളിതമാക്കുന്നു env_file എല്ലാ പരിസ്ഥിതി വേരിയബിളുകൾക്കും. ഡാറ്റാബേസ് ക്രെഡൻഷ്യലുകൾ, കീക്ലോക്ക് ഹോസ്റ്റ്നാമം, ആപേക്ഷിക പാതകൾ എന്നിവ പോലുള്ള കോൺഫിഗറേഷനുകൾ ലോഡ് ചെയ്യാൻ ഇത് ഡോക്കർ കണ്ടെയ്നറിനെ അനുവദിക്കുന്നു, ഇത് കൂടുതൽ സുരക്ഷിതവും അനുയോജ്യവുമാക്കുന്നു. ഒരു എൻവയോൺമെൻ്റ് ഫയൽ ഉപയോഗിക്കുന്നത് പ്രായോഗികമാണ്, കാരണം ഇത് ഹാർഡ്-കോഡഡ് മൂല്യങ്ങൾ ഒഴിവാക്കിക്കൊണ്ട് ഡോക്കർ കമ്പോസ് ഫയലിൽ നിന്ന് സെൻസിറ്റീവ് വിവരങ്ങൾ ഡീകൂപ്പിൾ ചെയ്യുന്നു. തൽഫലമായി, ഡാറ്റാബേസുകൾ മാറുന്നതോ ആക്‌സസ് ക്രെഡൻഷ്യലുകൾ പരിഷ്‌ക്കരിക്കുന്നതോ തടസ്സമില്ലാത്തതായി മാറുന്നു, സേവനങ്ങൾ പതിവായി അപ്‌ഡേറ്റ് ചെയ്യുന്ന ചലനാത്മക പരിതസ്ഥിതികളിൽ ഇത് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്. ഉദാഹരണത്തിൽ, പരിസ്ഥിതി വേരിയബിൾ KC_PROXY_HEADERS "xforwarded" ആയി സജ്ജീകരിച്ചിരിക്കുന്നു, അത് ഒരു പ്രോക്സിക്ക് പിന്നിലാണെന്ന് കീക്ലോക്ക് മനസ്സിലാക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നു, അതനുസരിച്ച് URL ജനറേഷനിലും സെഷൻ മാനേജ്മെൻ്റിലും മാറ്റങ്ങൾ വരുത്തുന്നു.

കോൺഫിഗറേഷനു പുറമേ, ഞങ്ങൾ എ നൽകി ബാഷ് കീക്ലോക്കിൻ്റെ ലഭ്യത പരിശോധിക്കുന്നതിനുള്ള ലളിതമായ ആരോഗ്യ പരിശോധനയായി പ്രവർത്തിക്കുന്ന സ്‌ക്രിപ്റ്റ്. സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നു ചുരുളൻ കീക്ലോക്ക് എൻഡ്‌പോയിൻ്റിലേക്ക് ഒരു HTTP അഭ്യർത്ഥന നടത്താനും സ്റ്റാറ്റസ് കോഡ് 200 ന് തുല്യമാണോ എന്ന് പരിശോധിക്കാനും, സേവനം പ്രവർത്തനക്ഷമമാണെന്ന് സൂചിപ്പിക്കുന്നു. പരാജയപ്പെടുകയാണെങ്കിൽ, സ്‌ക്രിപ്റ്റ് Nginx കണ്ടെയ്‌നർ പുനരാരംഭിക്കുന്നു, ഒരു തരം ഓട്ടോമേറ്റഡ് വീണ്ടെടുക്കൽ വാഗ്ദാനം ചെയ്യുന്നു. പ്രവർത്തന സമയം നിർണായകമായ ഉൽപ്പാദന പരിതസ്ഥിതികൾക്ക് ഈ സജ്ജീകരണം അനുയോജ്യമാണ്, കാരണം കണക്ഷൻ പ്രശ്നങ്ങൾ ഉണ്ടായാൽ സ്വയം സുഖപ്പെടുത്താൻ ഇത് സേവനത്തെ പ്രാപ്തമാക്കുന്നു. എൻഡ്‌പോയിൻ്റ് പ്രവേശനക്ഷമതയ്‌ക്കായുള്ള പൈത്തൺ അധിഷ്‌ഠിത യൂണിറ്റ് പരിശോധനയ്‌ക്കൊപ്പം ഇതുപോലുള്ള സ്‌ക്രിപ്‌റ്റുകൾ പരിശോധിക്കുന്നത്, സിസ്റ്റത്തിൻ്റെ സ്ഥിരതയെ ശക്തിപ്പെടുത്തുന്നു, സജ്ജീകരണം പ്രശ്‌നങ്ങൾ മുൻകൂട്ടി അറിയിക്കുകയോ പരിഹരിക്കുകയോ ചെയ്യുമെന്ന് അറിയുന്ന അഡ്മിനിസ്ട്രേറ്റർക്ക് മനസ്സമാധാനം നൽകുന്നു. പ്രവർത്തനരഹിതമായ സമയം കുറയ്ക്കുന്നതിനും കീക്ലോക്കിലേക്കുള്ള തടസ്സമില്ലാത്ത ആക്‌സസ് ഉറപ്പാക്കുന്നതിനും മാനേജ്‌മെൻ്റിനോടുള്ള ഈ സജീവമായ സമീപനം അത്യന്താപേക്ഷിതമാണ്. അഡ്മിൻ കൺസോൾ.

ഡോക്കറിലെ കീക്ലോക്കിനുള്ള റിവേഴ്സ് പ്രോക്സിയായി Nginx സജ്ജീകരിക്കുന്നു

കീക്ലോക്ക് പ്രോക്സിക്കായി Nginx കോൺഫിഗറേഷനുള്ള ബാക്കെൻഡ് സൊല്യൂഷൻ

upstream sso-mydomain-com {
    server 10.10.0.89:8080;
}
server {
    listen 443 ssl;
    server_name sso.mydomain.com;
    location / {
        proxy_pass http://sso-mydomain-com/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port $server_port;
    }
    ssl_certificate /etc/nginx/ssl/sso.mydomain.com/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/sso.mydomain.com/privkey.pem;
}
server {
    listen 8443 ssl;
    server_name sso.mydomain.com;
    error_log /usr/local/nginx/logs/sso_err.log debug;
    location / {
        proxy_pass http://sso-mydomain-com/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port $server_port;
    }
    ssl_certificate /etc/nginx/ssl/sso.mydomain.com/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/sso.mydomain.com/privkey.pem;
}

പരിസ്ഥിതി വേരിയബിളുകൾ ഉപയോഗിച്ച് കീക്ലോക്ക് ഡോക്കർ കംപോസ് കോൺഫിഗറേഷൻ

എൻവയോൺമെൻ്റ് വേരിയബിളുകൾ ഉപയോഗിച്ച് കീക്ലോക്ക് സജ്ജീകരണത്തിനായി ഡോക്കർ കംപോസ് ഫയൽ

version: '3.9'
services:
  keycloak:
    container_name: keycloak
    image: quay.io/keycloak/keycloak:26.0
    env_file:
      - .env
    ports:
      - "8080:8080"
    volumes:
      - /opt/keycloak/themes:/opt/keycloak/themes
      - /etc/localtime:/etc/localtime
    privileged: true
    command: start

കീക്ലോക്ക് API എൻഡ്‌പോയിൻ്റ് മൂല്യനിർണ്ണയത്തിനുള്ള യൂണിറ്റ് ടെസ്റ്റ്

കീക്ലോക്ക് / ഹൂമി എൻഡ്‌പോയിൻ്റ് പ്രതികരണം സാധൂകരിക്കാനുള്ള പൈത്തൺ അധിഷ്ഠിത യൂണിറ്റ് ടെസ്റ്റ്

import requests
def test_whoami_endpoint():
    url = "https://sso.mydomain.com:8443/auth/admin/master/console/whoami?currentRealm=master"
    headers = {"Content-Type": "application/json"}
    try:
        response = requests.get(url, headers=headers, verify=True)
        assert response.status_code == 200, "Expected 200 OK, got {}".format(response.status_code)
        print("Test passed: whoami endpoint accessible")
    except requests.ConnectionError:
        print("Connection error: Check Nginx reverse proxy and Keycloak availability")
    except AssertionError as e:
        print("Assertion error:", e)
# Run the test
test_whoami_endpoint()

ഇതര സമീപനം: Nginx Failover ഉള്ള കീക്ലോക്ക് ആരോഗ്യ പരിശോധന

കീക്ലോക്കിൽ ആരോഗ്യ പരിശോധന നടത്താനും ആവശ്യമെങ്കിൽ Nginx പുനരാരംഭിക്കാനും ബാഷ് സ്‌ക്രിപ്റ്റ്

#!/bin/bash
# Check if Keycloak is reachable via the /whoami endpoint
URL="http://10.10.0.89:8080/auth/admin/master/console/whoami"
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" $URL)
if [ "$STATUS_CODE" -ne 200 ]; then
    echo "Keycloak endpoint unavailable, restarting Nginx..."
    docker restart nginx
else
    echo "Keycloak endpoint is healthy."
fi

സുരക്ഷിതവും തടസ്സമില്ലാത്തതുമായ റിവേഴ്സ് പ്രോക്സി പ്രവർത്തനങ്ങൾക്കായി കീക്ലോക്ക് ഒപ്റ്റിമൈസ് ചെയ്യുന്നു

ഒരു റിവേഴ്സ് പ്രോക്സിക്ക് പിന്നിൽ കീക്ലോക്ക് കോൺഫിഗർ ചെയ്യുമ്പോൾ Nginx, സജ്ജീകരണം സുരക്ഷിതവും കാര്യക്ഷമവും സുസ്ഥിരവുമാണെന്ന് ഉറപ്പാക്കാൻ നിരവധി അധിക പരിഗണനകൾ സഹായിക്കും. ഒരു നിർണായക വശം SSL അവസാനിപ്പിക്കലാണ് - Nginx ലെയറിൽ HTTPS കൈകാര്യം ചെയ്യുന്നു. കീക്ലോക്ക് സാധാരണയായി ഡോക്കറിനുള്ളിലെ എച്ച്ടിടിപിയിൽ ശ്രദ്ധിക്കുന്നതിനാൽ, എൻജിൻഎക്‌സിന് എസ്എസ്എൽ എൻഡ്‌പോയിൻ്റായി പ്രവർത്തിക്കാൻ കഴിയും, എൻക്രിപ്ഷൻ ഓഫ്‌ലോഡ് ചെയ്യുകയും കീക്ലോക്കിലെ റിസോഴ്‌സ് ലോഡ് കുറയ്ക്കുകയും ചെയ്യുന്നു. അന്തിമ ഉപയോക്താക്കൾക്കായി സുരക്ഷിതമായ HTTPS ആക്‌സസ് നിലനിർത്തിക്കൊണ്ട് HTTP വഴി കീക്ലോക്കുമായി ആശയവിനിമയം നടത്താൻ ഈ സജ്ജീകരണം Nginx-നെ അനുവദിക്കുന്നു. കൂടാതെ, SSL സർട്ടിഫിക്കറ്റുകൾ Nginx-ൽ മാത്രമേ സംഭരിക്കപ്പെടുകയുള്ളൂ, ഇത് സർട്ടിഫിക്കറ്റ് മാനേജ്മെൻ്റ് ലളിതമാക്കുന്നു. Let's Encrypt പോലെയുള്ള ഓട്ടോമേറ്റഡ് ടൂളുകൾക്ക് പുതുക്കൽ കാര്യക്ഷമമാക്കാൻ കഴിയും, പ്രത്യേകിച്ച് സർട്ടിഫിക്കറ്റുകൾ അപ്ഡേറ്റായി Nginx റീലോഡ് ചെയ്യുന്ന സ്ക്രിപ്റ്റുകൾ.

മറ്റൊരു പ്രധാന ഘടകം ലോഡ് ബാലൻസിംഗും സ്കെയിലിംഗും ആണ്. ഉദാഹരണത്തിന്, ഡോക്കറിൻ്റെ നെറ്റ്‌വർക്ക് കോൺഫിഗറേഷനുകൾ ഉപയോഗിച്ച്, അഡ്മിനിസ്ട്രേറ്റർമാർക്ക് Nginx-ൽ ഒരു അപ്‌സ്ട്രീം സെർവർ പൂൾ സൃഷ്ടിക്കാൻ കഴിയും, അതിൽ ഒന്നിലധികം കീക്ലോക്ക് കണ്ടെയ്‌നറുകൾ ഉൾപ്പെടുന്നു, ലോഡ് വിതരണവും ലഭ്യതയും വർദ്ധിപ്പിക്കുന്നു. ദി പ്രോക്സി_പാസ് ഒന്നിലധികം കീക്ലോക്ക് സംഭവങ്ങളിലുടനീളം അഭ്യർത്ഥനകൾ റൂട്ട് ചെയ്യാൻ Nginx-നെ പ്രാപ്തമാക്കിക്കൊണ്ട്, ഈ പൂളിലേക്ക് നിർദ്ദേശങ്ങൾ പോയിൻ്റ് ചെയ്യുന്നു. ഈ സമീപനം ഉയർന്ന ട്രാഫിക് പരിതസ്ഥിതികളിൽ പ്രയോജനകരമാണ്, കാരണം ഇത് ഏതെങ്കിലും ഒരു സംഭവത്തെ അമിതമായി ബാധിക്കുന്നതിൽ നിന്ന് തടയുന്നു. കൂടാതെ, സെഷൻ പെർസിസ്റ്റൻസ്, സ്റ്റിക്കി സെഷനുകൾ എന്നും വിളിക്കപ്പെടുന്നു, ആധികാരികത പ്രശ്നങ്ങൾ ഒഴിവാക്കിക്കൊണ്ട്, ഉപയോക്താക്കൾ അതേ സംഭവവുമായി ബന്ധപ്പെട്ടിരിക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നു. Nginx അല്ലെങ്കിൽ Docker സ്ക്രിപ്റ്റുകൾ ഉപയോഗിച്ച് ആരോഗ്യ പരിശോധനകൾ ഓട്ടോമേറ്റ് ചെയ്യാവുന്നതാണ്, Keycloak-ൻ്റെ ലഭ്യത നിരീക്ഷിക്കുകയും പരാജയങ്ങൾ സംഭവിച്ചാൽ സന്ദർഭങ്ങൾ പുനരാരംഭിക്കുകയും ചെയ്യാം. 🛠️

അവസാനമായി, കീക്ലോക്കിൻ്റെ ബിൽറ്റ്-ഇൻ മെട്രിക്കുകളും ലോഗുകളും പ്രയോജനപ്പെടുത്തുന്നത് സിസ്റ്റം പരിപാലിക്കുന്നതിനും ട്രബിൾഷൂട്ട് ചെയ്യുന്നതിനും അത്യന്താപേക്ഷിതമാണ്. കീക്ലോക്കിന് ഓരോ അഭ്യർത്ഥനയ്ക്കും വിശദമായ ലോഗുകൾ സൃഷ്ടിക്കാൻ കഴിയും, അത് Nginx-ൻ്റെ ആക്സസ് ലോഗുകളുമായി ജോടിയാക്കുമ്പോൾ, ഒരു പൂർണ്ണമായ ഓഡിറ്റ് ട്രയൽ സൃഷ്ടിക്കുന്നു. പ്രോമിത്യൂസ്, ഗ്രാഫാന എന്നിവ പോലുള്ള നിരീക്ഷണ ഉപകരണങ്ങൾക്ക് കീക്ലോക്കിൻ്റെ പ്രകടന അളവുകൾ ദൃശ്യവൽക്കരിക്കാനും ഉപയോക്താക്കളെ ബാധിക്കുന്നതിനുമുമ്പ് അപാകതകളെക്കുറിച്ച് അഡ്‌മിനിസ്‌ട്രേറ്റർക്ക് മുന്നറിയിപ്പ് നൽകാനും കഴിയും. Nginx-ൽ, ക്രമീകരണം പിശക്_ലോഗ് വരെ debug സജ്ജീകരണ സമയത്ത് ലെവൽ കോൺഫിഗറേഷൻ അല്ലെങ്കിൽ നെറ്റ്‌വർക്ക് പ്രശ്‌നങ്ങൾ നിർണ്ണയിക്കുന്നതിനുള്ള വിശദമായ വിവരങ്ങൾ ക്യാപ്‌ചർ ചെയ്യുന്നു. ഒരുമിച്ച്, ഈ തന്ത്രങ്ങൾ കൂടുതൽ പ്രതിരോധശേഷിയുള്ളതും സുരക്ഷിതവുമായ കീക്ലോക്ക് വിന്യാസം ഉറപ്പാക്കുന്നു, ഇത് ഒരു റിവേഴ്സ് പ്രോക്സിക്ക് പിന്നിലെ എൻ്റർപ്രൈസ്-ഗ്രേഡ് പ്രാമാണീകരണത്തിന് അനുയോജ്യമായ ഒരു പരിഹാരമാക്കി മാറ്റുന്നു.

Nginx, Docker എന്നിവയ്‌ക്കൊപ്പമുള്ള കീക്ലോക്കിനെക്കുറിച്ച് പതിവായി ചോദിക്കുന്ന ചോദ്യങ്ങൾ

  1. Nginx-നൊപ്പം Keycloak ഉപയോഗിക്കുമ്പോൾ 502 മോശം ഗേറ്റ്‌വേ പിശക് എങ്ങനെ പരിഹരിക്കാം?
  2. 502 പിശക് പരിഹരിക്കുന്നതിന്, Nginx കോൺഫിഗറേഷൻ പരിശോധിച്ച് ഉറപ്പാക്കുക proxy_pass URL കീക്ലോക്കിൻ്റെ കണ്ടെയ്‌നർ വിലാസവും പോർട്ടുമായി പൊരുത്തപ്പെടുന്നു. കൂടാതെ, കീക്ലോക്ക് പ്രവർത്തിക്കുന്നുണ്ടെന്നും ഇൻ്റേണൽ നെറ്റ്‌വർക്ക് വഴി ആക്‌സസ് ചെയ്യാമെന്നും സ്ഥിരീകരിക്കുക.
  3. കീക്ലോക്കിനായി എനിക്ക് Nginx-നൊപ്പം SSL ടെർമിനേഷൻ ഉപയോഗിക്കാമോ?
  4. അതെ, Nginx-ൽ SSL അവസാനിപ്പിക്കൽ സാധാരണമാണ്. കോൺഫിഗർ ചെയ്യുക ssl_certificate ഒപ്പം ssl_certificate_key ഇൻകമിംഗ് അഭ്യർത്ഥനകൾക്കായി HTTPS കൈകാര്യം ചെയ്യാൻ Nginx-ൽ. കീക്ലോക്കിന് എച്ച്ടിടിപി വഴി ആശയവിനിമയം നടത്താനാകും.
  5. ഒന്നിലധികം കീക്ലോക്ക് സംഭവങ്ങൾ എനിക്ക് എങ്ങനെ ലോഡ്-ബാലൻസ് ചെയ്യാം?
  6. ഒരു നിർവ്വചിക്കുക upstream ഓരോ കീക്ലോക്ക് സന്ദർഭത്തിലും Nginx-ൽ തടയുക. സജ്ജമാക്കുക proxy_pass അപ്‌സ്ട്രീം സെർവറിലേക്ക്, കൂടാതെ Nginx എല്ലാ സന്ദർഭങ്ങളിലും അഭ്യർത്ഥനകൾ വിതരണം ചെയ്യും.
  7. ഡോക്കറിൽ കീക്ലോക്കിൻ്റെ എൻവയോൺമെൻ്റ് വേരിയബിളുകൾ സുരക്ഷിതമാക്കുന്നതിനുള്ള മികച്ച സമ്പ്രദായങ്ങൾ ഏതാണ്?
  8. ഉപയോഗിക്കുക env_file ഹാർഡ്-കോഡുചെയ്‌ത മൂല്യങ്ങൾ ഒഴിവാക്കിക്കൊണ്ട് സെൻസിറ്റീവ് ഡാറ്റ സംഭരിക്കുന്നതിന് ഡോക്കർ കമ്പോസിൽ. കൂടാതെ, ആക്‌സസ്സ് നിയന്ത്രിക്കാൻ എൻവയോൺമെൻ്റ് ഫയലുകളിൽ ശരിയായ അനുമതികൾ സജ്ജമാക്കുക.
  9. Nginx-ൽ SSL സർട്ടിഫിക്കറ്റ് പുതുക്കൽ ഓട്ടോമേറ്റ് ചെയ്യുന്നതെങ്ങനെ?
  10. സർട്ടിഫിക്കറ്റ് പുതുക്കൽ ഓട്ടോമേറ്റ് എൻക്രിപ്റ്റ് ചെയ്യാം പോലുള്ള ടൂളുകൾ. പുതുക്കിയ ശേഷം, Nginx റീലോഡ് ചെയ്യാൻ ഒരു സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുക, അതുവഴി കണ്ടെയ്നർ പുനരാരംഭിക്കാതെ തന്നെ പുതിയ സർട്ടിഫിക്കറ്റുകൾ പ്രാബല്യത്തിൽ വരും.
  11. കീക്ലോക്കിന് Nginx വഴി അതിൻ്റെ ആരോഗ്യം നിരീക്ഷിക്കാൻ കഴിയുമോ?
  12. അതെ, ലളിതമായ ഒരു സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച്, curl കീക്ലോക്കിൻ്റെ എൻഡ്‌പോയിൻ്റ് നില പരിശോധിക്കാൻ കഴിയും. പരാജയപ്പെടുമ്പോൾ, ലഭ്യതയും പ്രതികരണശേഷിയും നിലനിർത്തിക്കൊണ്ട് Nginx അല്ലെങ്കിൽ കണ്ടെയ്‌നർ പുനരാരംഭിക്കുക.
  13. Nginx ലോഗുകൾ വഴി കീക്ലോക്ക് ലോഗിൻ പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ കഴിയുമോ?
  14. സജ്ജമാക്കുക error_log Nginx ൽ debug വിശദമായ ലോഗുകൾ ക്യാപ്‌ചർ ചെയ്യുന്നതിന് താൽക്കാലികമായി ലെവൽ, പ്രാമാണീകരണവും ആക്‌സസ് പ്രശ്‌നങ്ങളും നിർണ്ണയിക്കാൻ സഹായിക്കുന്നു.
  15. ഒന്നിലധികം കീക്ലോക്ക് സന്ദർഭങ്ങളിൽ എനിക്ക് എങ്ങനെ സെഷൻ സ്ഥിരത ഉറപ്പാക്കാനാകും?
  16. സെഷൻ മാറ്റങ്ങൾ മൂലമുള്ള ലോഗിൻ പ്രശ്‌നങ്ങൾ കുറയ്‌ക്കിക്കൊണ്ട്, ഒരേ കീക്ലോക്ക് ഇൻസ്‌റ്റൻസിലേക്ക് ഉപയോക്താക്കളെ കണക്‌റ്റ് ചെയ്‌ത് നിലനിർത്താൻ Nginx-ൽ സ്റ്റിക്കി സെഷനുകൾ കോൺഫിഗർ ചെയ്യുക.
  17. ഒരു ഇഷ്‌ടാനുസൃത ഡൊമെയ്ൻ വഴി എനിക്ക് കീക്ലോക്കിൻ്റെ അഡ്‌മിൻ കൺസോൾ ആക്‌സസ് ചെയ്യാൻ കഴിയുമോ?
  18. അതെ, സജ്ജമാക്കുക KC_HOSTNAME കീക്ലോക്കിൻ്റെ എൻവയോൺമെൻ്റ് വേരിയബിളിൽ ഇഷ്‌ടാനുസൃത ഡൊമെയ്‌നിലേക്ക്. Nginx-ൽ ഡൊമെയ്ൻ ശരിയായി റൂട്ട് ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക.
  19. Nginx ഉപയോഗിച്ച് കീക്ലോക്ക് ശരിയായി കോൺഫിഗർ ചെയ്‌തിട്ടുണ്ടോ എന്ന് എനിക്ക് എങ്ങനെ പരിശോധിക്കാനാകും?
  20. കോൺഫിഗറേഷന് ശേഷം, ഉപയോഗിക്കുക curl എൻഡ് പോയിൻ്റുകൾ ശരിയായി പ്രതികരിക്കുന്നുണ്ടോ എന്ന് പരിശോധിക്കാൻ, അല്ലെങ്കിൽ അഡ്‌മിൻ കൺസോൾ ആക്‌സസ് ചെയ്‌ത് പിശകുകൾ പരിശോധിക്കുക. കൂടാതെ, ഏതെങ്കിലും കണക്ഷൻ പ്രശ്നങ്ങൾക്കായി ലോഗുകൾ നിരീക്ഷിക്കുക.

പൊതിയുന്നു: കീക്ലോക്കും എൻജിൻഎക്സും കോൺഫിഗർ ചെയ്യുന്നതിനുള്ള പ്രധാന കാര്യങ്ങൾ

എൻജിൻഎക്സ് റിവേഴ്സ് പ്രോക്സിക്ക് പിന്നിൽ കീക്ലോക്ക് കോൺഫിഗർ ചെയ്യുന്നത് ആക്സസ് സുരക്ഷിതമാക്കുന്നതിനും നിയന്ത്രിക്കുന്നതിനും വളരെ ഫലപ്രദമാണ്. എന്നിരുന്നാലും, തെറ്റായ കോൺഫിഗറേഷനുകൾ കാരണം "502 ബാഡ് ഗേറ്റ്‌വേ" പോലുള്ള പിശകുകളും മേഖലയുമായി ബന്ധപ്പെട്ട കൺസോൾ പ്രശ്നങ്ങളും ഉണ്ടാകാറുണ്ട്. ലോഗുകൾ ശ്രദ്ധാപൂർവ്വം വിശകലനം ചെയ്യുന്നതിലൂടെയും SSL, പ്രോക്സി ക്രമീകരണങ്ങൾ പരിശോധിക്കുകയും നെറ്റ്‌വർക്ക് പാതകൾ സാധൂകരിക്കുകയും ചെയ്യുന്നതിലൂടെ, നിങ്ങൾക്ക് നിങ്ങളുടെ സജ്ജീകരണത്തിൻ്റെ ട്രബിൾഷൂട്ട് ചെയ്യാനും ഒപ്റ്റിമൈസ് ചെയ്യാനും കഴിയും.

ഈ പ്രക്രിയയിലൂടെ, കീക്ലോക്കിൻ്റെ അഡ്‌മിൻ കൺസോൾ സ്ഥിരപ്പെടുത്തുന്നതിന് കണ്ടെയ്‌നറൈസേഷൻ, പ്രോക്‌സി ക്രമീകരണങ്ങൾ, പരിസ്ഥിതി വേരിയബിളുകൾ എന്നിവ എങ്ങനെ ഒരുമിച്ച് പ്രവർത്തിക്കുന്നുവെന്ന് ഞങ്ങൾ കാണിച്ചുതന്നു. ലോഡ് ബാലൻസിംഗ്, SSL ഓഫ്‌ലോഡിംഗ് അല്ലെങ്കിൽ തടസ്സമില്ലാത്ത പ്രാമാണീകരണം എന്നിവയ്‌ക്കായി, നന്നായി കോൺഫിഗർ ചെയ്‌ത സജ്ജീകരണം, ഉൽപ്പാദന പരിതസ്ഥിതികളുടെ ഒരു ശ്രേണിക്ക് അനുയോജ്യമായ ഒരു സ്ഥിരതയുള്ള പ്രാമാണീകരണ പരിഹാരം നൽകുന്നു. 🔧

റഫറൻസുകളും ഉറവിടങ്ങളും
  1. ഒരു ഡോക്കർ പരിതസ്ഥിതിയിൽ കീക്ലോക്ക് പ്രവർത്തിപ്പിക്കുന്നതും Nginx-മായി ഒരു റിവേഴ്സ് പ്രോക്സിയായി സംയോജിപ്പിക്കുന്നതും സംബന്ധിച്ച വിശദാംശങ്ങൾ ഔദ്യോഗിക Keycloak ഡോക്യുമെൻ്റേഷനിൽ കാണാം. കീക്ലോക്ക് ഡോക്യുമെൻ്റേഷൻ
  2. SSL ടെർമിനേഷനും റിവേഴ്സ് പ്രോക്സി ബെസ്റ്റ് പ്രാക്ടീസുകളും ഉൾപ്പെടെ, സുരക്ഷിതമായ പ്രോക്സിയിംഗിനായി Nginx കോൺഫിഗർ ചെയ്യുന്നതിനെക്കുറിച്ചുള്ള സ്ഥിതിവിവരക്കണക്കുകൾ Nginx-ൻ്റെ സജ്ജീകരണ ഗൈഡ് നൽകുന്നു. Nginx റിവേഴ്സ് പ്രോക്സി ഗൈഡ്
  3. ഡോക്കറിൻ്റെ ഔദ്യോഗിക ഡോക്യുമെൻ്റേഷൻ, ഡോക്കർ കമ്പോസിനേയും എൻവയോൺമെൻ്റ് വേരിയബിൾ മാനേജ്മെൻ്റിനേയും കുറിച്ച് സമഗ്രമായ ഒരു കാഴ്ച നൽകുന്നു, ഇത് മൾട്ടി-സർവീസ് കോൺഫിഗറേഷനുകൾ കാര്യക്ഷമമാക്കാൻ സഹായിക്കുന്നു. ഡോക്കർ കമ്പോസ് എൻവയോൺമെൻ്റ് വേരിയബിളുകൾ
  4. 502 പിശകുകളുടെ വിപുലമായ ട്രബിൾഷൂട്ടിംഗിനായി, പ്രത്യേകിച്ച് സങ്കീർണ്ണമായ പ്രോക്സി കോൺഫിഗറേഷനുകളിൽ, Nginx ഡീബഗ്ഗിംഗും ലോഗിംഗ് ഉറവിടങ്ങളും വിലമതിക്കാനാവാത്തതാണ്. Nginx ഡീബഗ്ഗിംഗ് ഗൈഡ്