કેવી રીતે માર્ગદર્શિકા

Nginx સર્વર બ્લોક્સ (વર્ચ્યુઅલ હોસ્ટ) સાથે એકથી વધુ વેબસાઇટ હોસ્ટ કરવી

  • 14 મિનિટનું વાંચન
  • Hostragons ટીમ
Nginx સર્વર બ્લોક્સ (વર્ચ્યુઅલ હોસ્ટ) સાથે એકથી વધુ વેબસાઇટ હોસ્ટ કરવી

Nginx સર્વર બ્લોક્સ એ એક જ Nginx ઇન્સ્ટોલેશનમાં એકથી વધુ ડોમેન નામો અથવા વેબસાઇટને અલગ અલગ રૂપરેખાંકન સાથે હોસ્ટ કરવાની કલ્પના છે. ઉદાહરણ તરીકે, એક જ VPS પર example.com, blog.example.com અને biji-site.com માટે અલગ રુટ ડિરેક્ટરી, લોગ ફાઈલ્સ, SSL પ્રમાણપત્રો અને PHP સેટિંગ્સ નિર્ધારિત કરી શકાય છે. ટૂંકમાં, દરેક સાઇટ માટે અલગ ડિરેક્ટરી બનાવવી, ડોમેનનું DNS રેકોર્ડ સર્વર IP પર પોઈન્ટ કરવું, /etc/nginx/sites-available હેઠળ અલગ સર્વર બ્લોક બનાવવો, તેને sites-enabled સાથે લિંક કરવું, રૂપરેખાંકન ચકાસવું અને Nginx સર્વિસ રીલોડ કરવી એ સમાધાન છે.

આ માર્ગદર્શિકા Nginx સર્વર બ્લોક્સ સાથે એકથી વધુ સાઇટ્સનું હોસ્ટિંગ પ્રોડક્શન માટે કેવી રીતે કરવું તે સમજાવશે. માત્ર ચાલતી રીતે નહી, પણ વ્યવસ્થાપિત, સુરક્ષિત, ઝડપી, બેકઅપ યોગ્ય અને સ્કેલ કરી શકાય તેવી વ્યવસ્થા બનાવવાનો ઉદ્દેશ છે. ખાસ કરીને એજન્સીઓ, ડેવલપર્સ, ઇ-કોમર્સ માલિકો, બહુબ્રાન્ડ સંચાલકો અને એક જ સર્વર પર અનેક પ્રોજેક્ટ ચલાવતા સિસ્ટમ એડમિન માટે ઉપયોગી પગલાં અહીં આપવામાં આવ્યા છે. જો તમારા પાસે હજી સર્વર નથી, તો VPS સર્વર માટે VPS સર્વર અને ડોમેન મેનેજમેન્ટ માટે ડોમેન પ્રમાણન પૃષ્ઠો જોઈ શકો છો.

Nginx સર્વર બ્લોક્સ શું છે?

Nginx સર્વર બ્લોક્સ એ Nginx રૂપરેખાંકનમાં server બ્લોક તરીકે ઓળખાતા રૂપરેખાંકન ભાગો છે, જે HTTP કે HTTPS રીક્વેસ્ટ કઈ સાઇટ પર મોકલવી તે નક્કી કરે છે. Apache માં VirtualHost જેવી જ કલ્પના છે. જ્યારે વપરાશકર્તા બ્રાઉઝરમાં ડોમેન નામ લખે છે, ત્યારે DNS તે નામને સર્વર IP સાથે જોડે છે. ત્યારબાદ Nginx Host હેડર જોઈને server_name મૂલ્ય સાથે મેળ ખાતો સર્વર બ્લોક કામ કરે છે.

આ રીતે એક જ IP અને ફિઝિકલ કે વર્ચ્યુઅલ સર્વર પર અનેક વિવિધ વેબસાઇટ્સ હોસ્ટ કરી શકાય છે. દરેક સાઇટ માટે અલગ root ડિરેક્ટરી, access_log, error_log, રીડાયરેક્ટ નિયમો, SSL પ્રમાણપત્રો, કેશ નીતિ અને સુરક્ષા નિયમો નિર્ધારિત કરી શકાય છે. ઉદાહરણ તરીકે, તમારું કોર્પોરેટ સાઇટ /var/www/kurumsal/public માં, બ્લોગ /var/www/blog/public માં અને ટેસ્ટિંગ એન્વાયરનમેન્ટ /var/www/staging/public માં રાખી શકો છો.

Nginx આ માળખામાં અત્યંત કાર્યક્ષમ છે કારણ કે તેની ઇવેન્ટ-ડ્રીવન આર્કિટેક્ચરથી વધુ કનેક્શન્સ ઓછા રિસોર્સથી મેનેજ કરી શકે છે. તેથી શેર કરેલા હોસ્ટિંગ, VPS, ક્લાઉડ સર્વર અને વધારે ટ્રાફિકવાળા એપ્લિકેશન્સમાં તેનો ઉપયોગ થાય છે. બહુસાઇટ હોસ્ટિંગ માટે ફાઈલ પરમિશન્સ, DNS રીડાયરેક્ટ, SSL ઇન્સ્ટોલેશન અને લોગ ડિવિઝન જેવા તમામ પાસાઓનું યોગ્ય આયોજન જરૂરી છે.

Nginx સર્વર બ્લોક્સ ક્યારે ઉપયોગી થાય છે?

Nginx સર્વર બ્લોક્સ ખાસ કરીને ત્યારે ઉપયોગ થાય છે જયારે એક જ સર્વર પર એક કરતાં વધુ વેબસાઇટ્સનું સંચાલન કરવું હોય. તે બે નાના કોર્પોરેટ સાઇટો હોઈ શકે છે કે અનેક ગ્રાહક પ્રોજેક્ટ્સ, સબડોમેઈન કે માઇક્રોસર્વિસિસ હોઈ શકે છે. મહત્વપૂર્ણ વાત એ છે કે દરેક પ્રોજેક્ટને તર્કસંગત રીતે અલગ રાખવું.

  • એકથી વધુ ડોમેનને એક જ VPS પર હોસ્ટ કરવા માંગુ છો ત્યારે.
  • www અને non-www ડોમેનને કોઈ એક કૈનૉનિકલ સરનામે રીડાયરેક્ટ કરવું હોય ત્યારે.
  • સબડોમેઈનને અલગ ફોલ્ડર કે એપ્લિકેશન સાથે જોડવું હોય ત્યારે.
  • દરેક સાઇટ માટે અલગ SSL પ્રમાણપત્ર અને સુરક્ષા નીતિ બનાવવી હોય ત્યારે.
  • ગ્રાહક પ્રોજેક્ટ્સને અલગ લોગ ફાઈલ્સથી ટ્રેક કરવી હોય ત્યારે.
  • Laravel, WordPress, સ્ટેટિક HTML અને Node.js જેવી અલગ એપ્લિકેશન્સ એક જ સર્વર પર ચલાવવી હોય ત્યારે.

ઉદાહરણ તરીકે, એક ડિજિટલ એજન્સી 4 GB RAM વાળા એક VPS પર 8 ઓછા ટ્રાફિકવાળા કોર્પોરેટ સાઇટ્સ હોસ્ટ કરી શકે છે. પરંતુ દરેક સાઇટ માટે ટ્રાફિક, ડિસ્ક ઉપયોગ, PHP પ્રોસેસિંગ, ડેટાબેઝ લોડ અને બેકઅપ ફ્રિક્વન્સી ગણવી જરૂરી છે. જો પ્રોજેક્ટ્સ પર વધુ ટ્રાફિક હોય તો વધુ શક્તિશાળી VPS, ક્લાઉડ સર્વર કે મેનેજ્ડ હોસ્ટિંગ તરફ જવું જોઈએ. આ માટે વેબ હોસ્ટિંગ અને કોર્પોરેટ હોસ્ટિંગ વિકલ્પોનું તુલનાત્મક અભ્યાસ કરી શકાય.

શરૂઆત પહેલા જરૂરીયાતો

આ માર્ગદર્શિકા Ubuntu અથવા Debian આધારિત Linux સર્વર માટે છે. આદેશો અલગ ડિસ્ટ્રો પર થોડી ફરક કરી શકે છે, પણ લોજિક સરખો જ રહેશે. પ્રોડક્શન પર કામ કરતા પહેલાં બેકઅપ લેવું અનિવાર્ય છે. ખોટું Nginx રૂપરેખાંકન સર્વ સાઇટ્સને ટemporarily અપ્રાપ્ય બનાવી શકે છે.

ટેકનિકલ તૈયારી

  • Root કે sudo અધિકારવાળો Linux યુઝર એકાઉન્ટ.
  • સ્થાપિત અને ચાલતી Nginx સર્વિસ.
  • સર્વર IP પર પોઈન્ટ કરેલો ઓછામાં ઓછો એક ડોમેન નામ.
  • 80 અને 443 પોર્ટ્સ ફાયરવોલમાં ખુલ્લા હોવા જરુરી.
  • સાઇટ ફાઈલો માટે નિયમિત ડિરેક્ટરી સ્ટ્રક્ચર.
  • SSL માટે માન્ય પ્રમાણપત્ર અથવા Let’s Encrypt નો ઉપયોગ.
  • PHP-આધારિત એપ્લિકેશન્સ માટે PHP-FPM ઇન્સ્ટોલેશન.

DNS માં A રેકોર્ડ મુખ્ય ડોમેનને IPv4 સાથે અને AAAA રેકોર્ડ IPv6 સાથે જોડે છે. www જેવા સબડોમેઈન માટે CNAME કે A રેકોર્ડ ઉપયોગ થાય છે. DNS પ્રસારણ સામાન્ય રીતે કેટલીક મિનિટોથી લઈને 24 કલાક સુધી લઈ શકે છે. નવી સ્થાપના માટે પહેલા DNS સેટ કરવી અને પછી Nginx સર્વર બ્લોક રૂપરેખાંકન કરવું વધુ ઝડપી રહેશે.

સુપરિશ કરેલી ડિરેક્ટરી રચના

બહુસાઇટ હોસ્ટિંગમાં સામાન્ય ભૂલ એ છે કે તમામ ફાઈલો એક જ ડિરેક્ટરીમાં ગૂંચવાય જાય. આ ટૂંકા ગાળામાં સરળ લાગે પણ મેન્ટેનન્સ, બેકઅપ અને ડિબગીંગમાં મોટો સમય વેડફાય છે. શ્રેષ્ઠ રીત એ છે કે દરેક ડોમેન માટે એક અલગ મુખ્ય ડિરેક્ટરી અને તેના અંદર public, logs, backups જેવા સબડિરેક્ટરી બનાવવી.

ઉદાહરણ તરીકે /var/www/site1.com/public, /var/www/site1.com/logs, /var/www/site2.com/public અને /var/www/site2.com/logs. Nginx root સીધા public ડિરેક્ટરી પર પોઈન્ટ કરવી જોઈએ. તે રીતે એપ્લિકેશન ફાઈલો, .env જેવી સંવેદનશીલ ફાઈલો અને બેકઅપ વેબ પરથી સીધા એક્સેસ ન થઈ શકે.

દરેક સાઇટ માટે સરળ index.html ફાઈલ બનાવીને તે સાઇટનું નામ લખી શકો છો જેથી કયો સર્વર બ્લોક એક્ટિવ છે તે ચકાસી શકાય. પ્રોડક્શનમાં આ ફોલ્ડરનું માલિક www-data કે deployment માટે વપરાતા યુઝર હોય છે. ફાઈલ પરમિશન્સ સામાન્ય રીતે ફોલ્ડર્સ માટે 755 અને ફાઈલો માટે 644 પૂરતી છે. WordPress જેવાં લખાણ બદલતા એપ્લિકેશન્સ માટે uploads જેવા ફોલ્ડરનું ખાસ ધ્યાન રાખવું જરૂરી છે.

નિર્દિષ્ટ Nginx સર્વર બ્લોક બનાવવાની પ્રક્રિયા

નીચેના પગલાં site1.com માટે ઉદાહરણ રૂપે છે. આ જ રીત બીજા બધા સાઇટ માટે પણ અપનાવી શકો છો. મહત્વપૂર્ણ છે કે દરેક સાઇટ માટે અનન્ય server_name, root અને લોગ ફાઈલ હોવી જોઈએ.

1. સાઇટ ડિરેક્ટરી બનાવો

સૌથી પહેલું પગલું વેબ ફાઈલો માટે ડિરેક્ટરી બનાવવી છે. ઉદાહરણ: sudo mkdir -p /var/www/site1.com/public. ત્યારબાદ /var/www/site1.com/public/index.html બનાવો અને અંદર “આ site1.com ટેસ્ટ પેજ છે” લખી શકો છો.

ફાઈલ માલિકી સાચવી રાખવા માટે sudo chown -R www-data:www-data /var/www/site1.com ચલાવી શકો છો. જો deployment માટે બીજો યુઝર હોય તો ગ્રુપ પરમિશન્સ પણ એ મુજબ સેટ કરો. પ્રોડક્શન માટે 777 જેવી વધારાની પરમિશન્સ ન આપવી, કારણ કે તે હેકર્સ માટે ખતરો બની શકે છે.

2. સર્વર બ્લોક ફાઈલ બનાવો

Nginx માં સામાન્ય રીતે /etc/nginx/sites-available માં રૂપરેખાંકન રાખવામાં આવે છે અને /etc/nginx/sites-enabled માં સિંબોલિક લિંક બનાવવામાં આવે છે. ઉદાહરણ ફાઈલ: /etc/nginx/sites-available/site1.com.

સાદો HTTP સર્વર બ્લોક આવું લખાય છે: server { listen 80; server_name site1.com www.site1.com; root /var/www/site1.com/public; index index.html index.htm; access_log /var/log/nginx/site1.com.access.log; error_log /var/log/nginx/site1.com.error.log; location / { try_files $uri $uri/ =404; } }

આ રૂપરેખાંકનમાં listen 80 HTTP ટ્રાફિક સાંભળે છે, server_name એ ડોમેન બતાવે છે, root એ વેબ ફાઈલોની ડિરેક્ટરી છે, index ડિફૉલ્ટ ફાઈલ છે અને try_files માંગેલી ફાઈલ ન મળે તો 404 આપે છે. સ્ટેટિક સાઇટ માટે આ પૂરતું છે.

3. સાઇટ સક્રિય કરો

રૂપરેખાંકન સક્રિય કરવા માટે સિંબોલિક લિંક બનાવો: sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/site1.com. આ પદ્ધતિ ફાઈલો નકલ કરતા વધુ સારી છે કારણ કે મુખ્ય રૂપરેખાંકન ફાઈલ પર કામ થાય છે અને ફેરફાર તરત લાગુ પડે છે.

જો ડિફૉલ્ટ Nginx પેજ તમારી સાઇટ ઉપર દેખાય તો /etc/nginx/sites-enabled/default લિંક દૂર કરી શકો છો. પરંતુ પહેલા તમારું સર્વર બ્લોક યોગ્ય રીતે ચાલે તે તપાસો.

4. રૂપરેખાંકન તપાસો અને Nginx રીલોડ કરો

દરેક ફેરફાર પછી sudo nginx -t વડે સિન્ટેક્સ ચકાસો. સફળ થાય તો sudo systemctl reload nginx ચલાવી સર્વિસ રીલોડ કરો. reload restart કરતા સલામત છે કારણ કે તે ધીમે ધીમે ચાલતા કનેક્શન્સ હેન્ડલ કરે છે.

જો પરીક્ષણ નિષ્ફળ જાય તો એરોર મેસેજમાં ફાઈલનું નામ અને લાઇન નંબર બતાવવામાં આવે છે. સામાન્ય ભૂલોમાં સેમીકોલન ભૂલ, ખોટા બેંકેટ્સ, ખોટી ડિરેક્ટરી અને server_name ટકરાવ આવતી હોય છે. ભૂલો ઠીક કર્યા વિના Nginx રીલોડ ન કરો.

બીજી અને ત્રીજી સાઇટ ઉમેરવી

એકથી વધુ સાઇટ હોસ્ટ કરવાનું ફાયદું એ છે કે એક વખત સાચી સ્થાપના થઈ જાય પછી પ્રક્રિયા સરળતાથી ફરી કરી શકાય. site2.com માટે /var/www/site2.com/public ડિરેક્ટરી બનાવો, /etc/nginx/sites-available/site2.com ફાઈલ બનાવો, root અને લોગ પાથ site2.com પ્રમાણે બદલાવો, લિંક બનાવો અને Nginx ટેસ્ટ ચલાવો.

બીજી સાઇટ માટે સરળ રૂપરેખાંકન: server { listen 80; server_name site2.com www.site2.com; root /var/www/site2.com/public; index index.html; access_log /var/log/nginx/site2.com.access.log; error_log /var/log/nginx/site2.com.error.log; location / { try_files $uri $uri/ =404; } }

અલગ લોગ ફાઈલ હોવી વાસ્તવિક જીવનમાં ખૂબ ઉપયોગી છે. ઉદાહરણ તરીકે એક સાઇટમાં 404 ભૂલો વધે અને બીજીમાં નહીં. લોગ અલગ હોવાથી ત્રુટિ કઈ સાઇટમાં છે તે તરત જાણી શકાય. ટ્રાફિક વિશ્લેષણ, બોટ એટેક, તૂટેલા લિંક્સ અને પ્રદર્શન સમસ્યાઓ સાઇટ આધારિત ટ્રેક કરી શકાય.

SSL અને HTTPS રૂપરેખાંકન

2026 ના SEO ધોરણો મુજબ HTTPS માત્ર સુરક્ષા માટે નહીં પણ વપરાશકર્તા વિશ્વાસ અને ટેકનિકલ ગુણવત્તા માટે પણ જરૂરી છે. બ્રાઉઝર્સ HTTP સાઇટ્સને અનસુરક્ષિત બતાવે છે; પેમેન્ટ, લૉગિન, ફોર્મ કે એડમિન પેનલ ધરાવતી સાઇટ્સ માટે SSL ફરજિયાત છે. બહુસાઇટ હોસ્ટિંગ વખતે દરેક ડોમેન માટે યોગ્ય SSL સર્ટિફિકેટ હોવું જરૂરી છે. Hostragons પર SSL જરૂરિયાતો માટે SSL પ્રમાણપત્રો પૃષ્ઠ જુઓ.

Let’s Encrypt વાપરતા હો તો Certbot સાથે દરેક ડોમેન માટે સર્ટિફિકેટ લઈ શકાય છે. ઉદાહરણ તરીકે certbot --nginx -d site1.com -d www.site1.com Nginx રૂપરેખાંકન ઓળખી HTTPS બ્લોક આપમેળે ઉમેરશે. આપમેળે બદલાવ પછી ફાઈલ ચકાસવી સારી પ્રથા છે જેમ કે ખોટા રીડાયરેક્ટ કે ડુપ્લિકેટ સર્વર બ્લોક ન બને.

HTTPS માં સામાન્ય રીતે 80 પોર્ટનું ટ્રાફિક 443 પોર્ટ પર કાયમી રીતે રીડાયરેક્ટ થાય છે. 301 રીડાયરેક્ટ SEO માટે કાયમી સંકેત આપે છે. www વાપરવું કે ન વાપરવું તે નક્કી કરો અને બધા વર્ઝન એક જ કૈનૉનિકલ સરનામે લાવો. ઉદાહરણ તરીકે https://www.site1.com ના બદલે https://site1.com વાપરવા માટે HTTP અને HTTPS બંને www ટ્રાફિક non-www સરનામે લઈ જાઓ. આ નકલી કન્ટેન્ટની સંભાવના ઘટાડે છે.

PHP અને WordPress સાઇટ માટે Nginx સર્વર બ્લોક્સ

સ્ટેટિક HTML સાઇટ્સ સરળ છે, પણ WordPress, Laravel કે કસ્ટમ PHP એપ્લિકેશન્સ માટે PHP-FPM સાથે ઈન્ટિગ્રેશન જરૂરી છે. આ માટે index.php ડિફાઈન કરવો અને PHP રીક્વેસ્ટ્સને સોકેટ પર ફોરવર્ડ કરવું પડે છે. ઉદાહરણ તરીકે Ubuntu માં PHP 8.3 માટે સોકેટ પાથ /run/php/php8.3-fpm.sock હોઈ શકે છે. વર્ઝન સર્વર મુજબ બદલાય છે.

PHP આધારિત બ્લોક: server { listen 80; server_name wordpress-site.com www.wordpress-site.com; root /var/www/wordpress-site.com/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$args; } location ~ php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.3-fpm.sock; } }

WordPress માટે પરમાલિંક (permalinks) કામ કરવા માટે try_files $uri $uri/ /index.php?$args જરૂરી છે. ઉપરાંત xmlrpc.php એક્સેસ, wp-login.php રેટ લિમિટ, uploads ડિરેક્ટરીમાં PHP અવરોધ જેવી સુરક્ષા પગલાં લેવી જોઈએ. એક VPS પર ઘણા WordPress સાઇટ્સ હોસ્ટ કરતા હોય તો દરેક માટે અલગ ડેટાબેસ, યુઝર અને નિયમિત અપડેટ હોવી જરૂરી છે. વધુ સારી વ્યવસ્થા માટે WordPress હોસ્ટિંગ વિકલ્પ જોઈ શકાય.

Nginx સર્વર બ્લોક્સ અને Apache VirtualHost ની તુલના

Nginx સર્વર બ્લોક્સ અને Apache VirtualHost ની તુલના

Nginx અને Apache બંને એક જ હેતુ માટે અલગ આર્કિટેક્ચર ધરાવે છે. બંને એક જ સર્વર પર એકથી વધુ સાઇટ્સ હોસ્ટ કરી શકે છે. પસંદગી એપ્લિકેશનની જરૂરિયાત, મેનેજમેન્ટ અને પરફોર્મન્સ પર આધાર રાખે છે.

Nginx સર્વર બ્લોક્સ અને Apache VirtualHost ની તુલના
માપદંડNginx સર્વર બ્લોક્સApache VirtualHost
પરફોર્મન્સઉચ્ચ સમકાલીન કનેક્શન્સમાં ઓછા રિસોર્સ વાપરે છે.મોડ્યુલ અને પ્રોસેસ મોડેલ અનુસાર વધારે રિસોર્સ વાપરી શકે.
રૂપરેખાંકનકેન્દ્રિય અને સરળ રૂપરેખાંકન..htaccess દ્વારા ફોલ્ડર-આધારિત લવચીકતા.
સ્ટેટિક ફાઈલ સેવાખૂબ જ ઝડપી અને કાર્યક્ષમ.સારું પ્રદર્શન પણ Nginx કરતાં ભારે પડી શકે.
PHP ચલાવવુંPHP-FPM મારફતે.mod_php અથવા PHP-FPM બંને શક્ય.
વાપરવાની સ્થિતિરિવર્સ પ્રોક્સી, સ્ટેટિક ફાઈલ, ઉચ્ચ ટ્રાફિક અને આધુનિક એપ્લિકેશન્સ માટે શ્રેષ્ઠ..htaccess આધારિત જૂના એપ્લિકેશન્સ અને શેરડ હોસ્ટિંગ માટે અનુકૂળ.

જો તમારી એપ્લિકેશન .htaccess આધારિત હોય તો Apache વધુ સરળ લાગી શકે. પણ વધુ ટ્રાફિક, રિવર્સ પ્રોક્સી, કેશ અને આધુનિક ડિલિવરી માટે Nginx વધારે શક્તિશાળી છે. કેટલીક જગ્યાએ Nginx રિવર્સ પ્રોક્સી અને Apache બેકએન્ડ સર્વર તરીકે પણ સાથે ચાલે છે.

સુરક્ષિત કરવા માટે શ્રેષ્ઠ રીતો

એક જ સર્વર પર બહુ સાઇટ હોસ્ટ કરવાથી ખર્ચો ઓછો પડે પણ સુરક્ષા જવાબદારી વધી જાય છે. એક સાઇટની ખામી બીજાને અસર ન કરે તે માટે આઇસોલેશન અને ઓછામાં ઓછા અધિકારોના સિદ્ધાંત લાગુ કરવો જરૂરી છે.

  • દરેક સાઇટ માટે અલગ ડેટાબેસ અને યુઝર બનાવો.
  • વેબ રુટ ડિરેક્ટરી માત્ર public ફોલ્ડર સુધી મર્યાદિત રાખો.
  • બેકઅપ, .env, .git, config અને SQL ફાઈલોને વેબ એક્સેસથી દૂર રાખો.
  • SSL પ્રમાણપત્રો નિયમિત રીતે રીન્યૂ કરો અને HTTPS ફરજિયાત કરો.
  • સર્વર પર UFW કે અન્ય ફાયરવોલ ઉપયોગ કરો, ફક્ત જરૂરી પોર્ટ્સ ખોલો.
  • Nginx અને OS ના અપડેટ્સ નિયમિત રીતે લાગુ કરો.
  • દરેક સાઇટ માટે અલગ access_log અને error_log રાખો.
  • એડમિન પેનલ્સ માટે IP ફીલ્ટરિંગ કે બેસ્ટ સિક્યુરિટી લેયર ઉમેરો.
  • 777 જેવી વધારાની ફાઈલ પરમિશન્સથી બચો.

સાથે સુરક્ષા હેડર્સ જેમ કે X-Frame-Options, X-Content-Type-Options, Referrer-Policy અને Content-Security-Policy લાગુ કરવી પણ સારું છે. ખાસ કરીને Content-Security-Policyને પહેલાં ટેસ્ટિંગમાં અજમાવો, કારણ કે તે સ્ક્રિપ્ટ અને CSS બ્લૉક કરી શકે છે. વધુ માહિતી માટે વેબ સાઇટની સુરક્ષા જુઓ.

પરફોર્મન્સ અને SEO માટે ધ્યાનમાં રાખવાના મુદ્દા

Nginx સર્વર બ્લોક્સ માત્ર હોસ્ટિંગ માટે નહીં, પણ સાઇટની ઝડપ અને SEO ગુણવત્તા માટે પણ મહત્વપૂર્ણ છે. ખોટા રીડાયરેક્ટ ચેઇન, કૈનૉનિકલ ભૂલો, gzip અથવા brotli કંપ્રેશનનો અભાવ, મોટી લોગ ફાઈલો અને અયોગ્ય કેશિંગ સાઇટની ઝડપને અસર કરે છે. Google પેજ એક્સપિરિઅન્સ યુઝર-ફ્રેન્ડલી, સુરક્ષિત અને સ્થિર સાઇટ્સને પ્રાધાન્ય આપે છે.

પ્રથમ દરેક ડોમેન માટે એક જ કૈનૉનિકલ URL નક્કી કરો. HTTP થી HTTPS અને www થી non-www કે તેના વિરુદ્ધ સીધા 301 રીડાયરેક્ટ કરો. ઉદાહરણ તરીકે http://site.com → http://www.site.com → https://www.site.com → https://site.com જેવા લંબાયેલા ચેઇન ન બનાવો; એક જ સ્ટેપમાં લક્ષ્ય સરનામે જાઓ.

સ્ટેટિક ફાઈલ્સ માટે cache-control હેડર્સ લગાવો. ઈમેજીસ, CSS અને JS ફાઈલો બ્રાઉઝરમાં નિર્ધારિત સમય માટે સ્ટોર કરી શકાય. વારંવાર બદલાતા ફાઈલ્સ માટે વર્ઝનિંગ અથવા ક્વેરી સ્ટ્રિંગ ટેકનિક ઉપયોગમાં લો. gzip કંપ્રેશન HTML, CSS, JS અને JSON માટે બૅન્ડવિડ્થ બચાવે છે. વધુ ટ્રાફિકવાળી સાઇટ્સ માટે Nginx microcache, FastCGI cache કે CDN ઉપયોગ કરી શકાય. CDN અને વૈશ્વિક ઍક્સેસ માટે CDN શું છે જોઈ શકાય.

લોગ મેનેજમેન્ટ અને મોનિટરિંગ

બહુસાઇટ હોસ્ટિંગમાં લોગ મેનેજમેન્ટ સમસ્યાઓ ઉકેલવાની ચાવી છે. અલગ અલગ લોગ ફાઈલોથી કઈ સાઇટમાં કયો એરોર છે તે સ્પષ્ટ થાય છે. access_log વપરાશકર્તા વિનંતીઓ રેકોર્ડ કરે છે, error_log રૂપરેખાંકન, પરમિશન, ફાઈલ ન મળવાની અને બેકએન્ડ ત્રુટિઓ નોંધે છે. 502 Bad Gateway સામાન્ય રીતે PHP-FPM અથવા બેકએન્ડ સર્વિસ સાથે સંપર્ક તૂટવાથી થાય છે. 403 Forbidden પરમિશન સમસ્યા હોય શકે છે. 404 Not Found ફાઈલ પાથ કે DNS સમસ્યાને દર્શાવે છે.

લોગ ફાઈલો અશાંત રીતે વધતા રહે તે રોકવા logrotate રૂપરેખાંકન ચકાસો. નાની સાઇટ્સ માટે દૈનિક કે સાપ્તાહિક ફેરફાર પૂરતો હોય, જ્યારે વધી ટ્રાફિકવાળી સાઇટ્સ માટે કેન્દ્રિય લોગ કલેકશન, મેટ્રિક્સ મોનિટરિંગ અને અલર્ટ સિસ્ટમ ઉપયોગી છે. ડિસ્ક ભરાય જાય તો Nginx લોગ લખી શકતું નથી, ડેટાબેઝ બંધ થઈ શકે છે અને સાઇટ્સ ડાઉન થઈ શકે છે. તેથી ડિસ્ક ઉપયોગ માટે થ્રેશોલ્ડ નક્કી કરી રાખો.

સામાન્ય ભૂલો અને ઝડપી ઉકેલ

Nginx સર્વર બ્લોક્સ સાથે કામ કરતી વખતે કેટલીક ત્રુટિઓ વારંવાર જોવા મળે છે. આ જાણવું સ્થાપન ઝડપી બનાવે છે.

  • ખોટો ડોમેન ખૂલે: server_name ટકરાવ અને ડિફૉલ્ટ સર્વર બ્લોક તપાસો.
  • 403 Forbidden: root ડિરેક્ટરી, ફાઈલ પરમિશન અને index ફાઈલની હાજરી તપાસો.
  • 404 Not Found: root પાથ અને try_files નિયમ તપાસો.
  • 502 Bad Gateway: PHP-FPM સર્વિસ ચાલે છે તે અને સોકેટ પાથ સાચો છે તે ચકાસો.
  • ખોટો SSL સર્ટિફિકેટ: 443 પોર્ટના server_name અને સર્ટિફિકેટ ફાઈલો તપાસો.
  • રીડાયરેક્ટ લૂપ: HTTP-HTTPS અને www રીડાયરેક્ટ નિયમો સરળ બનાવો.
  • Nginx રીલોડ ન થાય: sudo nginx -t આઉટપુટ મુજબ સિન્ટેક્સ ભૂલ સુધારો.

અનુભવી એડમિન માટે એક સરળ ચેકલિસ્ટ છે: DNS યોગ્ય છે? Nginx રૂપરેખાંકન સક્રિય છે? root ડિરેક્ટરી છે? પરમિશન યોગ્ય છે? સર્વિસ ટેસ્ટ પાસ કરી છે? લોગ્સ શું કહે છે? આ રીતે શાંતિથી સમસ્યાનું સમાધાન કરી શકાય.

પ્રોડક્શન માટે પ્રેક્ટિકલ ચેકલિસ્ટ

લાઇવ કરવા પહેલાં નીચેની ચેકલિસ્ટથી દરેક સાઇટ ચકાસો. ખાસ કરીને ગ્રાહક પ્રોજેક્ટ્સમાં આ દસ્તાવેજીકરણ વ્યવસાયિક માનક બનાવે છે.

  • ડોમેનના A અથવા AAAA રેકોર્ડ યોગ્ય IP પર છે.
  • www અને non-www માંથી એક કૈનૉનિકલ રીતે પસંદ કર્યો છે.
  • HTTP ટ્રાફિક HTTPS પર 301 રીડાયરેક્ટ થાય છે.
  • SSL પ્રમાણપત્ર માન્ય અને આપમેળે રીન્યૂ થાય છે.
  • દરેક સાઇટ માટે અલગ root અને લોગ ફાઈલ છે.
  • Nginx રૂપરેખાંકન sudo nginx -t થી ચકાસાયેલ છે.
  • બેકઅપ યોજના બનાવવામાં આવી છે અને રેસ્ટોર ટેસ્ટ થયો છે.
  • ફાઈલ પરમિશન ઓછામાં ઓછા અધિકાર પ્રમાણે છે.
  • ફાયરવોલમાં ફક્ત જરૂરી પોર્ટ્સ ખુલ્લા છે.
  • એરર લોગ લાઈવ થયા પછી ઓછામાં ઓછા 15 મિનિટ માટે મોનિટરિંગ થયું છે.

આ ચેકલિસ્ટ નાનાં લાગે પણ વાસ્તવમાં ડાઉનટાઈમ જોખમ ઘણું ઘટાડે છે. ખાસ કરીને SSL રીન્યૂઅલ, DNS ચેક અને લોગ મોનિટરિંગ સમયસર ખામીઓને શોધી કાઢે છે.

નિષ્કર્ષ

Nginx સર્વર બ્લોક્સ એક જ સર્વર પર અનેક સાઇટ્સને વ્યવસ્થિત, સુરક્ષિત અને કાર્યક્ષમ રીતે હોસ્ટ કરવાની મુખ્ય રીત છે. યોગ્ય ડિરેક્ટરી સ્ટ્રક્ચર, અલગ રૂપરેખાંકન ફાઈલો, ચોક્કસ રીડાયરેક્ટ નિયમો, HTTPS ઉપયોગ, લોગ વિભાજન અને નિયમિત પરીક્ષણ સાથે બહુસાઇટ મેનેજમેન્ટ ખૂબ અસરકારક બને છે. નાના પોર્ટફોલિયો સાઇટથી લઈને મોટી ગ્રાહક પ્રોજેક્ટ સુધી આ સિદ્ધાંતો લાગુ પડે છે.

જો તમે નવી સાઇટ શરૂ કરવા જઈ રહ્યા હો, તો પહેલા ડોમેન નામ, સર્વર સ્રોત અને SSL જરૂરિયાતોને સ્પષ્ટ કરો; પછી ઉપરોક્ત ચેકલિસ્ટ સાથે Nginx રૂપરેખાંકન શાંતિથી બનાવો. વધુ વ્યવસ્થાપિત માળખા માટે Hostragons ના હોસ્ટિંગ પેકેજો, VPS સર્વર અને SSL પ્રમાણપત્રો વિકલ્પો જોઈ શકો છો.

અવારનવાર પૂછાતા પ્રશ્નો

Nginx સર્વર બ્લોક્સ સાથે કેટલાં સાઇટ્સ હોસ્ટ કરી શકાય?

ટેકનિકલી Nginx સાથે એક જ સર્વર પર બહુ સાઇટ્સ હોસ્ટ કરી શકાય છે; મર્યાદા સામાન્ય રીતે CPU, RAM, ડિસ્ક, ટ્રાફિક, ડેટાબેઝ લોડ અને PHP-FPM ક્ષમતા પર નિર્ભર છે. ઓછા ટ્રાફિકવાળા સ્ટેટિક સાઇટ્સ માટે અનેક સાઇટ્સ શક્ય છે, જ્યારે ભારે WordPress કે ઇ-કોમર્સ સાઇટ્સ માટે ઓછા સાઇટ્સ હોસ્ટ કરવાં શ્રેષ્ઠ.

દરેક સાઇટ માટે અલગ SSL સર્ટિફિકેટ ફરજિયાત છે?

હા, દરેક ડોમેન અથવા સબડોમેઈન HTTPS પર હોસ્ટ કરવા માટે સર્ટિફિકેટ આવશ્યક છે. અલગ અલગ સર્ટિફિકેટ હોઈ શકે છે અથવા SAN/wildcard સર્ટિફિકેટ પણ ઉપયોગમાં લઈ શકાય છે. મહત્વનું એ છે કે Nginx માં 443 પોર્ટના સર્વર બ્લોકમાં યોગ્ય સર્ટિફિકેટ ફાઇલો યોગ્ય ડોમેન માટે જોડાયેલી હોવી જોઈએ.

Nginx સર્વર બ્લોક સાથે સબડોમેઈન ને પણ હોસ્ટ કરી શકાય?

હા, blog.site.com કે panel.site.com જેવા સબડોમેઈન માટે અલગ server_name આપી શકાય છે અને અલગ root ડિરેક્ટરી કે બેકએન્ડ એપ્લિકેશન સાથે જોડાઈ શકે છે. DNS માં આ સબડોમેઈન માટે A કે CNAME રેકોર્ડ બનાવવો ફરજિયાત છે.

sites-available અને sites-enabled માં શું ફરક છે?

sites-available એ બધા ઉપલબ્ધ રૂપરેખાંકન ફાઈલોનો સંગ્રહ છે; sites-enabled એ સક્રિય રૂપરેખાંકનો ધરાવે છે. સામાન્ય રીતે sites-enabled માં sites-available ની ફાઈલ માટે સિંબોલિક લિંક બનાવવામાં આવે છે. આ રીતે સાઇટ્સને સક્રિય કે નિષ્ક્રિય કરવી સુગમ બને છે.

ખોટી સાઇટ ખૂલે તો શું કરવું?

સામાન્ય કારણો DNS ખોટી રીતે IP પર પોઇન્ટ કરતું હોય, server_name ખોટું સેટ થયેલું હોય, ડિફૉલ્ટ Nginx બ્લોક રીક્વેસ્ટ પકડી લેતો હોય કે 443 પોર્ટ પર ખોટો SSL બ્લોક ચાલતો હોય. પહેલા DNS રેકોર્ડ અને પછી nginx -t આઉટપુટ, sites-enabled લિંક અને access_log તપાસો.

આ લેખ શેર કરો:

Hostragons ટીમ

હોસ્ટિંગ, સર્વર્સ અને ડોમેન નામો પર અમારી નિષ્ણાત ટીમ તરફથી અદ્યતન માર્ગદર્શિકાઓ. ચાલો સાથે મળીને તમારા પ્રોજેક્ટ માટે યોગ્ય ઉકેલ શોધીએ.

અમારો સંપર્ક કરો