വെർച്വൽ ഹോസ്റ്റുകളും SSL സർട്ടിഫിക്കറ്റും ഉപയോഗിച്ച് Nginx എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം


Nginx (Engine-x എന്നതിന്റെ ചുരുക്കം) ഒരു സ്വതന്ത്ര, ഓപ്പൺ സോഴ്uസ്, ശക്തമായ, ഉയർന്ന പ്രവർത്തനക്ഷമതയുള്ളതും അളക്കാവുന്നതുമായ HTTP, റിവേഴ്സ് പ്രോക്സി സെർവർ, ഒരു മെയിലും സ്റ്റാൻഡേർഡ് TCP/UDP പ്രോക്സി സെർവറും ആണ്. ലളിതമായ കോൺഫിഗറേഷൻ ഭാഷ ഉപയോഗിച്ച് ഇത് ഉപയോഗിക്കാനും ക്രമീകരിക്കാനും എളുപ്പമാണ്. Nginx, അതിന്റെ സ്കേലബിളിറ്റിയും പ്രകടനവും കാരണം, വളരെയധികം ലോഡുചെയ്uത സൈറ്റുകൾ പവർ ചെയ്യുന്നതിനുള്ള തിരഞ്ഞെടുത്ത വെബ് സെർവർ സോഫ്റ്റ്uവെയറാണ്.

ഒരു HTTP സെർവറായി Nginx എങ്ങനെ ഉപയോഗിക്കാം, വെബ് ഉള്ളടക്കം നൽകുന്നതിന് കോൺഫിഗർ ചെയ്യുക, പേര് അടിസ്ഥാനമാക്കിയുള്ള വെർച്വൽ ഹോസ്റ്റുകൾ സജ്ജീകരിക്കുക, ഉബുണ്ടുവിലും CentOS-ലും സ്വയം ഒപ്പിട്ട സർട്ടിഫിക്കറ്റ് ഉൾപ്പെടെ സുരക്ഷിത ഡാറ്റാ ട്രാൻസ്മിഷനുകൾക്കായി SSL സൃഷ്ടിക്കുകയും ഇൻസ്റ്റാൾ ചെയ്യുകയും ചെയ്യുന്നതെങ്ങനെയെന്ന് ഈ ലേഖനത്തിൽ ചർച്ച ചെയ്യും. .

Nginx വെബ് സെർവർ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങളുടെ പാക്കേജ് മാനേജർ ഉപയോഗിച്ച് ഔദ്യോഗിക ശേഖരണങ്ങളിൽ നിന്ന് Nginx പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്തുകൊണ്ട് ആദ്യം ആരംഭിക്കുക.

------------ On Ubuntu ------------ 
$ sudo apt update 
$ sudo apt install nginx 

------------ On CentOS ------------
$ sudo yum update 
$ sudo yum install epel-release 
$ sudo yum install nginx 

Nginx പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, നിങ്ങൾ ഇപ്പോൾ സേവനം ആരംഭിക്കേണ്ടതുണ്ട്, ബൂട്ട് സമയത്ത് യാന്ത്രികമായി ആരംഭിക്കാൻ ഇത് പ്രാപ്തമാക്കുകയും ഇനിപ്പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് അതിന്റെ സ്റ്റാറ്റസ് കാണുകയും വേണം. പാക്കേജ് മുൻകൂട്ടി ക്രമീകരിച്ചിരിക്കുമ്പോൾ ഉബുണ്ടുവിൽ, അത് സ്വയമേവ ആരംഭിക്കുകയും പ്രവർത്തനക്ഷമമാക്കുകയും വേണം.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

ഈ സമയത്ത്, Nginx വെബ് സെർവർ പ്രവർത്തനക്ഷമമായിരിക്കണം, നിങ്ങൾക്ക് netstat കമാൻഡ് ഉപയോഗിച്ച് സ്റ്റാറ്റസ് പരിശോധിക്കാം.

$ sudo netstat -tlpn | grep nginx

നിങ്ങളുടെ സിസ്റ്റത്തിൽ ഒരു ഫയർവാൾ പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ, പ്രവർത്തിപ്പിക്കുന്നതിലൂടെ യഥാക്രമം HTTP, HTTPS ട്രാഫിക് അനുവദിക്കുന്നതിന് നിങ്ങൾ പോർട്ട് 80, 443 എന്നിവ തുറക്കേണ്ടതുണ്ട്.

------------ On CentOS ------------
$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp
$ sudo firewall-cmd --reload

------------ On Ubuntu ------------ 
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw reload 

ഒരു വെബ് ബ്രൗസർ തുറന്ന് സെർവറിന്റെ IP-ലേക്ക് ചൂണ്ടിക്കാണിക്കുക എന്നതാണ് Nginx ഇൻസ്റ്റാളേഷൻ പരിശോധിക്കുന്നതിനും അത് പ്രവർത്തിക്കുന്നുണ്ടോ എന്നും വെബ് പേജുകൾ സേവിക്കാൻ കഴിയുമോ എന്നും പരിശോധിക്കുന്നതിനുള്ള ഏറ്റവും അനുയോജ്യമായ രീതി.

http://Your-IP-Address
OR
http://Your-Domain.com

ഒരു പ്രവർത്തിക്കുന്ന ഇൻസ്റ്റാളേഷൻ ഇനിപ്പറയുന്ന സ്ക്രീനിൽ സൂചിപ്പിക്കണം.

Nginx വെബ് സെർവർ എങ്ങനെ കോൺഫിഗർ ചെയ്യാം

Nginx-ന്റെ കോൺഫിഗറേഷൻ ഫയലുകൾ /etc/nginx എന്ന ഡയറക്ടറിയിലും ആഗോള കോൺഫിഗറേഷൻ ഫയൽ CentOS-ലും ഉബുണ്ടുവിലും /etc/nginx/nginx.conf-ലും സ്ഥിതിചെയ്യുന്നു.

നിർദ്ദേശങ്ങൾ എന്നറിയപ്പെടുന്ന വിവിധ കോൺഫിഗറേഷൻ ഓപ്ഷനുകളാൽ നിയന്ത്രിക്കപ്പെടുന്ന മൊഡ്യൂളുകളാണ് Nginx നിർമ്മിച്ചിരിക്കുന്നത്. ഒരു നിർദ്ദേശം ലളിതമാകാം (ഫോമിന്റെ പേരിലും ; ഉപയോഗിച്ച് അവസാനിപ്പിച്ച മൂല്യങ്ങളിലും) അല്ലെങ്കിൽ ബ്ലോക്ക് ({} ഉപയോഗിച്ച് അധിക നിർദ്ദേശങ്ങൾ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്). മറ്റ് നിർദ്ദേശങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു ബ്ലോക്ക് നിർദ്ദേശത്തെ ഒരു സന്ദർഭം എന്ന് വിളിക്കുന്നു.

എല്ലാ നിർദ്ദേശങ്ങളും പ്രോജക്റ്റ് വെബ്uസൈറ്റിലെ Nginx ഡോക്യുമെന്റേഷനിൽ സമഗ്രമായി വിശദീകരിച്ചിട്ടുണ്ട്. കൂടുതൽ വിവരങ്ങൾക്ക് നിങ്ങൾക്ക് ഇത് റഫർ ചെയ്യാം.

അടിസ്ഥാന തലത്തിൽ, ഡിഫോൾട്ട് സെർവർ ബ്ലോക്ക് മാത്രം ഉപയോഗിക്കുന്ന സ്റ്റാൻuലോൺ മോഡിൽ HTML, മീഡിയ ഫയലുകൾ പോലുള്ള സ്റ്റാറ്റിക് ഉള്ളടക്കം നൽകാൻ Nginx ഉപയോഗിക്കാം (വെർച്വൽ ഹോസ്റ്റുകളൊന്നും കോൺഫിഗർ ചെയ്യാത്ത അപ്പാച്ചെയ്ക്ക് സമാനമാണ്).

പ്രധാന കോൺഫിഗറേഷൻ ഫയലിലെ കോൺഫിഗറേഷൻ ഘടന ഹ്രസ്വമായി വിശദീകരിച്ചുകൊണ്ട് ഞങ്ങൾ ആരംഭിക്കും.

 
$ sudo vim /etc/nginx/nginx.conf

നിങ്ങൾ ഈ Nginx കോൺഫിഗറേഷൻ ഫയലിലേക്ക് നോക്കുകയാണെങ്കിൽ, കോൺഫിഗറേഷൻ ഘടന ഇനിപ്പറയുന്ന രീതിയിൽ ദൃശ്യമാകും, ഇതിനെ പ്രധാന സന്ദർഭം എന്ന് വിളിക്കുന്നു, അതിൽ മറ്റ് നിരവധി ലളിതവും ബ്ലോക്ക് നിർദ്ദേശങ്ങളും അടങ്ങിയിരിക്കുന്നു. എല്ലാ വെബ് ട്രാഫിക്കും http സന്ദർഭത്തിലാണ് കൈകാര്യം ചെയ്യുന്നത്.

user  nginx;
worker_processes  1;
.....

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
.....

events {
       	.....
}

http {
	server{
		…….
	}
	.....
}

ഇനിപ്പറയുന്നത് ഒരു സാമ്പിൾ Nginx പ്രധാന കോൺഫിഗറേഷൻ (/etc/nginx/nginx.conf) ഫയലാണ്, ഇവിടെ മുകളിലുള്ള http ബ്ലോക്കിൽ വെബ്uസൈറ്റ് കോൺഫിഗറേഷൻ ഫയലുകൾ (വെർച്വൽ ഹോസ്റ്റ് കോൺഫിഗറേഷനുകൾ) എവിടെ കണ്ടെത്താമെന്ന് Nginx-നോട് പറയുന്ന ഒരു ഉൾപ്പെടുത്തിയ നിർദ്ദേശം അടങ്ങിയിരിക്കുന്നു.

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

   include /etc/nginx/mime.types;
   default_type application/octet-stream;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
	
    include /etc/nginx/conf.d/*.conf;
}

/etc/nginx/sites-enabled/ എന്ന ഡയറക്uടറി /etc/nginx/sites-enabled/ എന്നതിൽ സൃഷ്uടിച്ച വെബ്uസൈറ്റുകളുടെ കോൺഫിഗറേഷൻ ഫയലുകളിലേക്കുള്ള സിംലിങ്കുകൾ സംഭരിക്കുന്ന ഡയറക്uടറി (/etc/nginx/sites-enabled/*;) ഉൾപ്പെടുന്ന ഒരു അധിക നിർദ്ദേശവും ഉബുണ്ടുവിൽ നിങ്ങൾ കണ്ടെത്തും. etc/nginx/sites-available/, സൈറ്റുകൾ പ്രവർത്തനക്ഷമമാക്കാൻ. ഒരു സിംലിങ്ക് ഇല്ലാതാക്കുന്നത് ആ പ്രത്യേക സൈറ്റിനെ പ്രവർത്തനരഹിതമാക്കുന്നു.

നിങ്ങളുടെ ഇൻസ്റ്റാളേഷൻ ഉറവിടത്തെ അടിസ്ഥാനമാക്കി, /etc/nginx/conf.d/default.conf (നിങ്ങൾ ഔദ്യോഗിക NGINX ശേഖരണത്തിൽ നിന്നും EPEL-ൽ നിന്നും ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെങ്കിൽ) അല്ലെങ്കിൽ /etc/nginx/sites-enabled/default എന്നതിൽ സ്ഥിരസ്ഥിതി വെബ്uസൈറ്റ് കോൺഫിഗറേഷൻ ഫയൽ നിങ്ങൾ കണ്ടെത്തും. (നിങ്ങൾ ഉബുണ്ടു റിപ്പോസിറ്ററികളിൽ നിന്ന് ഇൻസ്റ്റാൾ ചെയ്താൽ).

ടെസ്റ്റ് സിസ്റ്റത്തിൽ /etc/nginx/conf.d/default.conf എന്നതിൽ സ്ഥിതി ചെയ്യുന്ന ഞങ്ങളുടെ സാമ്പിൾ ഡിഫോൾട്ട് nginx സെർവർ ബ്ലോക്കാണിത്.

server {
    listen    80 default_server;
    listen    [::]:80 default_server;
    server_name    _;
    root           /var/www/html/;
    index          index.html;
    location / {
                try_files $uri $uri/ =404;
        }
}

മുകളിലെ കോൺഫിഗറേഷനിലെ നിർദ്ദേശങ്ങളുടെ ഒരു ഹ്രസ്വ വിശദീകരണം:

  • ശ്രവിക്കുക: സെർവർ ശ്രദ്ധിക്കുന്ന പോർട്ട് വ്യക്തമാക്കുന്നു.
  • server_name: കൃത്യമായ പേരുകളോ വൈൽഡ്കാർഡ് പേരുകളോ സാധാരണ പദപ്രയോഗങ്ങളോ ആകാം സെർവർ നാമം നിർവചിക്കുന്നു.
  • റൂട്ട്: വെബ് പേജുകളും മറ്റ് ഡോക്യുമെന്റുകളും Nginx നൽകുന്ന ഡയറക്uടറി വ്യക്തമാക്കുന്നു.
  • സൂചിക: നൽകേണ്ട ഇൻഡക്uസ് ഫയലിന്റെ(കൾ) തരം(ങ്ങൾ) വ്യക്തമാക്കുന്നു.
  • ലൊക്കേഷൻ: നിർദ്ദിഷ്ട ഫയലുകൾക്കും ഫോൾഡറുകൾക്കുമുള്ള അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യാൻ ഉപയോഗിക്കുന്നു.

ഒരു വെബ് ബ്രൗസറിൽ നിന്ന്, ലോക്കൽ ഹോസ്റ്റ് എന്ന ഹോസ്uറ്റ് നാമം അല്ലെങ്കിൽ അതിന്റെ ഐപി വിലാസം ഉപയോഗിച്ച് നിങ്ങൾ സെർവറിലേക്ക് പോയിന്റ് ചെയ്യുമ്പോൾ, അത് അഭ്യർത്ഥന പ്രോസസ്സ് ചെയ്യുകയും /var/www/html/index.html ഫയൽ നൽകുകയും, ഇവന്റ് അതിന്റെ ആക്uസസ് ലോഗിലേക്ക് (/) സംരക്ഷിക്കുകയും ചെയ്യുന്നു. var/log/nginx/access.log) 200 (ശരി) പ്രതികരണത്തോടെ. ഒരു പിശകിന്റെ കാര്യത്തിൽ (പരാജയപ്പെട്ട ഇവന്റ്), അത് പിശക് ലോഗിൽ സന്ദേശം രേഖപ്പെടുത്തുന്നു (/var/log/nginx/error.log).

Nginx-ൽ ലോഗിൻ ചെയ്യുന്നതിനെക്കുറിച്ച് കൂടുതലറിയാൻ, നിങ്ങൾക്ക് Nginx-ൽ ഇഷ്uടാനുസൃത ആക്uസസ് അല്ലെങ്കിൽ പിശക് ലോഗ് ഫോർമാറ്റുകൾ എങ്ങനെ കോൺഫിഗർ ചെയ്യാം.

ഡിഫോൾട്ട് ലോഗ് ഫയലുകൾ ഉപയോഗിക്കുന്നതിനുപകരം, \നാമം അടിസ്ഥാനമാക്കിയുള്ള വെർച്വൽ ഹോസ്റ്റുകൾ (സെർവർ ബ്ലോക്കുകൾ) സജ്ജീകരിക്കുന്നു എന്ന വിഭാഗത്തിന് കീഴിൽ ഞങ്ങൾ പിന്നീട് നോക്കുന്നതുപോലെ, വ്യത്യസ്ത വെബ് സൈറ്റുകൾക്കായുള്ള ഇഷ്uടാനുസൃത ലോഗ് ഫയലുകൾ നിങ്ങൾക്ക് നിർവചിക്കാം.

നിങ്ങളുടെ വെബ്uസൈറ്റ്/ആപ്ലിക്കേഷനിലേക്കോ അതിന്റെ ചില ഭാഗങ്ങളിലേക്കോ ഉള്ള ആക്uസസ് നിയന്ത്രിക്കുന്നതിന്, നിങ്ങൾക്ക് അടിസ്ഥാന HTTP പ്രാമാണീകരണം സജ്ജീകരിക്കാം. മുഴുവൻ HTTP സെർവറിലേക്കോ വ്യക്തിഗത സെർവർ ബ്ലോക്കുകളിലേക്കോ ലൊക്കേഷൻ ബ്ലോക്കുകളിലേക്കോ ഉള്ള ആക്uസസ് നിയന്ത്രിക്കുന്നതിന് ഇത് പ്രധാനമായും ഉപയോഗിക്കാവുന്നതാണ്.

htpasswd യൂട്ടിലിറ്റി ഉപയോഗിച്ച് നിങ്ങളുടെ ആക്uസസ് ക്രെഡൻഷ്യലുകൾ (ഉപയോക്തൃനാമം/പാസ്uവേഡ്) സംഭരിക്കുന്ന ഒരു ഫയൽ സൃഷ്uടിക്കുന്നതിലൂടെ ആരംഭിക്കുക.

 
$ yum install httpd-tools		#RHEL/CentOS
$ sudo apt install apache2-utils	#Debian/Ubuntu

ഒരു ഉദാഹരണമായി, ഈ ലിസ്റ്റിലേക്ക് ഉപയോക്തൃ അഡ്uമിനെ ചേർക്കാം (നിങ്ങൾക്ക് കഴിയുന്നത്ര ഉപയോക്താക്കളെ ചേർക്കാം), പാസ്uവേഡ് ഫയൽ വ്യക്തമാക്കാൻ -c ഓപ്ഷനും -B< /കോഡ്> പാസ്uവേഡ് എൻക്രിപ്റ്റ് ചെയ്യാൻ. ഒരിക്കൽ നിങ്ങൾ [Enter] അമർത്തിയാൽ, ഉപയോക്താക്കളുടെ പാസ്uവേഡ് നൽകാൻ നിങ്ങളോട് ആവശ്യപ്പെടും:

$ sudo htpasswd -Bc /etc/nginx/conf.d/.htpasswd admin

തുടർന്ന്, പാസ്uവേഡ് ഫയലിലേക്ക് ശരിയായ അനുമതികളും ഉടമസ്ഥാവകാശവും നൽകാം (ഉബുണ്ടുവിലെ www-data ഉപയോഗിച്ച് ഉപയോക്താവിനെയും ഗ്രൂപ്പിനെയും nginx മാറ്റിസ്ഥാപിക്കുക).

$ sudo chmod 640 /etc/nginx/conf.d/.htpasswd
$ sudo chown nginx:nginx /etc/nginx/conf.d/.htpasswd

ഞങ്ങൾ നേരത്തെ സൂചിപ്പിച്ചതുപോലെ, നിങ്ങളുടെ വെബ്uസെർവറിലേക്കോ ഒരൊറ്റ വെബ്uസൈറ്റിലേക്കോ (അതിന്റെ സെർവർ ബ്ലോക്ക് ഉപയോഗിച്ച്) അല്ലെങ്കിൽ നിർദ്ദിഷ്ട ഡയറക്ടറിയിലേക്കോ ഫയലിലേക്കോ ഉള്ള ആക്uസസ് നിങ്ങൾക്ക് നിയന്ത്രിക്കാനാകും. ഇത് നേടുന്നതിന് രണ്ട് ഉപയോഗപ്രദമായ നിർദ്ദേശങ്ങൾ ഉപയോഗിക്കാം:

  • auth_basic – \HTTP അടിസ്ഥാന പ്രാമാണീകരണം പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച് ഉപയോക്തൃനാമത്തിന്റെയും പാസ്uവേഡിന്റെയും മൂല്യനിർണ്ണയം ഓൺ ചെയ്യുന്നു.
  • auth_basic_user_file – ക്രെഡൻഷ്യലിന്റെ ഫയൽ വ്യക്തമാക്കുന്നു.

ഒരു ഉദാഹരണമായി, /var/www/html/protected എന്ന ഡയറക്uടറി എങ്ങനെ പാസ്uവേഡ് പരിരക്ഷിക്കാമെന്ന് ഞങ്ങൾ കാണിക്കും.

server {
    listen         80 default_server;
    server_name    localhost;
    root           /var/www/html/;
    index          index.html;
    location / {
                try_files $uri $uri/ =404;
        }
     
    location /protected/ {
        auth_basic              "Restricted Access!";
        auth_basic_user_file    /etc/nginx/conf.d/.htpasswd;
    }
}

ഇപ്പോൾ, മാറ്റങ്ങൾ സംരക്ഷിച്ച് Nginx സേവനം പുനരാരംഭിക്കുക.

$ sudo systemctl restart nginx 

അടുത്ത തവണ നിങ്ങളുടെ ബ്രൗസർ മുകളിലെ ഡയറക്uടറിയിലേക്ക് (http://localhost/protected) ചൂണ്ടിക്കാണിക്കുമ്പോൾ, നിങ്ങളുടെ ലോഗിൻ ക്രെഡൻഷ്യലുകൾ (ഉപയോക്തൃനാമം അഡ്മിനും തിരഞ്ഞെടുത്ത പാസ്uവേഡും) നൽകാൻ നിങ്ങളോട് ആവശ്യപ്പെടും.

ഒരു വിജയകരമായ ലോഗിൻ ഡയറക്ടറിയുടെ ഉള്ളടക്കങ്ങൾ ആക്സസ് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു, അല്ലാത്തപക്ഷം നിങ്ങൾക്ക് \401 അംഗീകാരം ആവശ്യമാണ് എന്ന പിശക് ലഭിക്കും.

Nginx-ൽ പേര് അടിസ്ഥാനമാക്കിയുള്ള വെർച്വൽ ഹോസ്റ്റുകൾ (സെർവർ ബ്ലോക്കുകൾ) എങ്ങനെ സജ്ജീകരിക്കാം

ഒരേ ഫിസിക്കൽ മെഷീനിൽ നിന്നോ വെർച്വൽ പ്രൈവറ്റ് സെർവറിൽ നിന്നോ (VPS) ഒന്നിലധികം ഡൊമെയ്uനുകൾ/സൈറ്റുകൾ സംഭരിക്കാനും സേവിക്കാനും സെർവർ സന്ദർഭം അനുവദിക്കുന്നു. ഒന്നിലധികം സെർവർ ബ്ലോക്കുകൾ (വെർച്വൽ ഹോസ്റ്റുകളെ പ്രതിനിധീകരിക്കുന്നു) ഓരോ സൈറ്റിനും/ഡൊമെയ്uനിനും http സന്ദർഭത്തിൽ പ്രഖ്യാപിക്കാനാകും. ഏത് സെർവർ അഭ്യർത്ഥന പ്രോസസ്സ് ചെയ്യണമെന്ന് Nginx തീരുമാനിക്കുന്നു, അതിന് ലഭിക്കുന്ന അഭ്യർത്ഥന തലക്കെട്ടിനെ അടിസ്ഥാനമാക്കി.

ഇനിപ്പറയുന്ന ഡമ്മി ഡൊമെയ്uനുകൾ ഉപയോഗിച്ച് ഞങ്ങൾ ഈ ആശയം പ്രദർശിപ്പിക്കും, ഓരോന്നും നിർദ്ദിഷ്ട ഡയറക്uടറിയിൽ സ്ഥിതിചെയ്യുന്നു:

  • wearelinux-console.net – /var/www/html/wearelinux-console.net/
  • welovelinux.com – /var/www/html/welovelinux.com/

അടുത്തതായി, ഓരോ സൈറ്റിനും ഡയറക്ടറിയിൽ ഉചിതമായ അനുമതികൾ നൽകുക.

$ sudo chmod -R 755 /var/www/html/wearelinux-console.net/public_html 
$ sudo chmod -R 755 /var/www/html/welovelinux.com/public_html 

ഇപ്പോൾ, ഓരോ public_html ഡയറക്ടറിയിലും ഒരു സാമ്പിൾ index.html ഫയൽ സൃഷ്ടിക്കുക.

<html>
	<head>
		<title>www.wearelinux-console.net</title>
	</head>
<body>
	<h1>This is the index page of www.wearelinux-console.net</h1>
</body>
</html>

അടുത്തതായി, /etc/httpd/conf.d ഡയറക്uടറിക്കുള്ളിൽ ഓരോ സൈറ്റിനും സെർവർ ബ്ലോക്ക് കോൺഫിഗറേഷൻ ഫയലുകൾ സൃഷ്uടിക്കുക.

$ sudo vi /etc/nginx/conf.d/wearelinux-console.net.conf
$ sudo vi /etc/nginx/conf.d/welovelinux.com.conf

wearelinux-console.net.conf ഫയലിൽ ഇനിപ്പറയുന്ന സെർവർ ബ്ലോക്ക് ഡിക്ലറേഷൻ ചേർക്കുക.

server {
    listen         80;
    server_name  wearelinux-console.net;
    root           /var/www/html/wearelinux-console.net/public_html ;
    index          index.html;
    location / {
                try_files $uri $uri/ =404;
        }
     
}

അടുത്തതായി, welovelinux.com.conf ഫയലിൽ ഇനിപ്പറയുന്ന സെർവർ ബ്ലോക്ക് ഡിക്ലറേഷൻ ചേർക്കുക.

server {
    listen         80;
    server_name    welovelinux.com;
    root           /var/www/html/welovelinux.com/public_html;
    index          index.html;
    location / {
                try_files $uri $uri/ =404;
        }
     
}

സമീപകാല മാറ്റങ്ങൾ പ്രയോഗിക്കാൻ, Nginx വെബ് സെർവർ പുനരാരംഭിക്കുക.

$ sudo systemctl restart nginx

മുകളിലെ വിലാസങ്ങളിലേക്ക് നിങ്ങളുടെ വെബ് സെർവറിനെ ചൂണ്ടിക്കാണിക്കുന്നത് ഡമ്മി ഡൊമെയ്uനുകളുടെ പ്രധാന പേജുകൾ കാണുന്നതിന് നിങ്ങളെ സഹായിക്കും.

http://wearelinux-console.net
http://welovelinux.com

പ്രധാനപ്പെട്ടത്: നിങ്ങൾ SELinux പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ, അറിയപ്പെടുന്ന അംഗീകൃത ലൊക്കേഷനുകൾക്ക് പുറത്തുള്ള ഫയലുകൾ ആക്uസസ് ചെയ്യാൻ അതിന്റെ ഡിഫോൾട്ട് കോൺഫിഗറേഷൻ Nginx-നെ അനുവദിക്കുന്നില്ല (കോൺഫിഗറേഷനുകൾക്ക് /etc/nginx, ലോഗുകൾക്ക് /var/log/nginx, /var/www/html. വെബ് ഫയലുകൾക്കും മറ്റും..).

ഒന്നുകിൽ SELinux പ്രവർത്തനരഹിതമാക്കുന്നതിലൂടെയോ അല്ലെങ്കിൽ ശരിയായ സുരക്ഷാ സന്ദർഭം സജ്ജമാക്കുന്നതിലൂടെയോ നിങ്ങൾക്ക് ഇത് കൈകാര്യം ചെയ്യാൻ കഴിയും. കൂടുതൽ വിവരങ്ങൾക്ക്, ഈ ഗൈഡ് കാണുക: Nginx പ്ലസ് വെബ്uസൈറ്റിൽ SELinux-നൊപ്പം Nginx, Nginx Plus എന്നിവ ഉപയോഗിക്കുന്നു.

Nginx ഉപയോഗിച്ച് SSL എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യാം

നിങ്ങളുടെ സൈറ്റിൽ സുരക്ഷിതമായ http (HTTPS) പ്രവർത്തനക്ഷമമാക്കാൻ SSL സർട്ടിഫിക്കറ്റുകൾ സഹായിക്കുന്നു, ഇത് നിങ്ങളുടെ സൈറ്റിലേക്കോ, നിന്നോ, അല്ലെങ്കിൽ നിങ്ങളുടെ സൈറ്റിനുള്ളിലോ കൈമാറുന്ന വിവരങ്ങൾ എൻക്രിപ്റ്റ് ചെയ്തുകൊണ്ട് അന്തിമ ഉപയോക്താക്കൾക്കും നിങ്ങളുടെ സെർവറിനുമിടയിൽ ഒരു വിശ്വസനീയ/സുരക്ഷിത കണക്ഷൻ സ്ഥാപിക്കുന്നതിന് അത്യന്താപേക്ഷിതമാണ്.

Nginx-നൊപ്പം ഉപയോഗിക്കുന്നതിന്, ഒരു സർട്ടിഫിക്കറ്റ് അതോറിറ്റിയിൽ (CA) നിന്ന് ഒരു SSL സർട്ടിഫിക്കറ്റ് നേടുന്നതിന് സ്വയം ഒപ്പിട്ട സർട്ടിഫിക്കറ്റ് എങ്ങനെ സൃഷ്uടിക്കുകയും ഇൻസ്റ്റാൾ ചെയ്യുകയും ചെയ്യാമെന്നും ഒരു സർട്ടിഫിക്കറ്റ് സൈനിംഗ് അഭ്യർത്ഥന (CSR) സൃഷ്ടിക്കാമെന്നും ഞങ്ങൾ കവർ ചെയ്യും.

സ്വയം ഒപ്പിട്ട സർട്ടിഫിക്കറ്റുകൾ സൃഷ്uടിക്കാൻ സ്വാതന്ത്ര്യമുണ്ട്, കൂടാതെ പരീക്ഷണ ആവശ്യങ്ങൾക്കും ആന്തരിക ലാൻ-മാത്രം സേവനങ്ങൾക്കുമായി പോകാൻ പ്രായോഗികമായി നല്ലതാണ്. പൊതുവായി അഭിമുഖീകരിക്കുന്ന സെർവറുകൾക്ക്, അതിന്റെ ആധികാരികത ഉയർത്തിപ്പിടിക്കാൻ ഒരു CA നൽകുന്ന സർട്ടിഫിക്കറ്റ് (ഉദാഹരണത്തിന് നമുക്ക് എൻക്രിപ്റ്റ് ചെയ്യാം) ഉപയോഗിക്കാൻ വളരെ ശുപാർശ ചെയ്യുന്നു.

സ്വയം ഒപ്പിട്ട സർട്ടിഫിക്കറ്റ് സൃഷ്uടിക്കുന്നതിന്, ആദ്യം നിങ്ങളുടെ സർട്ടിഫിക്കറ്റുകൾ സംഭരിക്കുന്ന ഒരു ഡയറക്uടറി സൃഷ്uടിക്കുക.

$ sudo mkdir /etc/nginx/ssl-certs/

തുടർന്ന് openssl കമാൻഡ് ലൈൻ ടൂൾ ഉപയോഗിച്ച് നിങ്ങളുടെ സ്വയം ഒപ്പിട്ട സർട്ടിഫിക്കറ്റും കീയും സൃഷ്ടിക്കുക.

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl-certs/nginx.key -out /etc/nginx/ssl-certs/nginx.crt

മുകളിലുള്ള കമാൻഡിൽ ഉപയോഗിച്ചിരിക്കുന്ന ഓപ്ഷനുകൾ നമുക്ക് ചുരുക്കമായി വിവരിക്കാം:

  • req -X509 – ഞങ്ങൾ ഒരു x509 സർട്ടിഫിക്കറ്റ് സൃഷ്ടിക്കുകയാണെന്ന് കാണിക്കുന്നു.
  • -nodes (NO DES) - അർത്ഥമാക്കുന്നത് \കീ എൻക്രിപ്റ്റ് ചെയ്യരുത് എന്നാണ്.
  • -days 365 – സർട്ടിഫിക്കറ്റ് എത്ര ദിവസത്തേക്ക് സാധുവായിരിക്കുമെന്ന് വ്യക്തമാക്കുന്നു.
  • -newkey rsa:2048 – RSA അൽഗോരിതം ഉപയോഗിച്ച് സൃഷ്ടിക്കുന്ന കീ 2048-ബിറ്റ് ആയിരിക്കണം എന്ന് വ്യക്തമാക്കുന്നു.
  • -keyout /etc/nginx/ssl-certs/nginx.key – RSA കീയുടെ മുഴുവൻ പാതയും വ്യക്തമാക്കുന്നു.
  • -out /etc/nginx/ssl-certs/nginx.crt – സർട്ടിഫിക്കറ്റിന്റെ മുഴുവൻ പാതയും വ്യക്തമാക്കുന്നു.

അടുത്തതായി, നിങ്ങളുടെ വെർച്വൽ ഹോസ്റ്റ് കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് പോർട്ട് 443-ൽ കേൾക്കുന്ന സെർവർ ബ്ലോക്ക് ഡിക്ലറേഷനിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക. ഞങ്ങൾ വെർച്വൽ ഹോസ്റ്റ് ഫയൽ /etc/nginx/conf.d/wearelinux-console.net.conf ഉപയോഗിച്ച് പരിശോധിക്കും.

$ sudo vi /etc/nginx/conf.d/wearelinux-console.net.conf

തുടർന്ന് nginx കോൺഫിഗറേഷൻ ഫയലിലേക്ക് ssl ഡയറക്uടീവ് ചേർക്കുക, അത് ചുവടെയുള്ളതിന് സമാനമായി കാണണം.

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;
    
    ssl on;
    ssl_certificate /etc/nginx/ssl-certs/nginx.crt;
    ssl_trusted_certificate /etc/nginx/ssl-certs/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl-certs/nginx.key;
    
    server_name  wearelinux-console.net;
    root           /var/www/html/wearelinux-console.net/public_html;
    index          index.html;
    location / {
                try_files $uri $uri/ =404;
        }

}

ഇപ്പോൾ Nginx പുനരാരംഭിച്ച് നിങ്ങളുടെ ബ്രൗസർ ഇനിപ്പറയുന്ന വിലാസത്തിലേക്ക് പോയിന്റ് ചെയ്യുക.

https://www.wearelinux-console.net

നിങ്ങൾ ഒരു CA-യിൽ നിന്ന് ഒരു SSL സർട്ടിഫിക്കറ്റ് വാങ്ങാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾ ഒരു സർട്ടിഫിക്കറ്റ് സൈനിംഗ് അഭ്യർത്ഥന (CSR) സൃഷ്ടിക്കേണ്ടതുണ്ട്.

$ sudo openssl req -newkey rsa:2048 -nodes -keyout /etc/nginx/ssl-certs/example.com.key -out /etc/nginx/ssl-certs/example.com.csr

നിലവിലുള്ള ഒരു സ്വകാര്യ കീയിൽ നിന്ന് നിങ്ങൾക്ക് ഒരു CSR സൃഷ്ടിക്കാനും കഴിയും.

$ sudo openssl req -key /etc/nginx/ssl-certs/example.com.key -new -out /etc/nginx/ssl-certs/example.com.csr

തുടർന്ന്, ഒരു സിഎ ഒപ്പിട്ട SSL സർട്ടിഫിക്കറ്റ് ഇഷ്യൂ ചെയ്യാൻ അഭ്യർത്ഥിക്കുന്നതിന് നിങ്ങൾ ജനറേറ്റ് ചെയ്യുന്ന CSR ഒരു CA-ലേക്ക് അയയ്ക്കേണ്ടതുണ്ട്. CA-യിൽ നിന്ന് നിങ്ങളുടെ സർട്ടിഫിക്കറ്റ് ലഭിച്ചുകഴിഞ്ഞാൽ, മുകളിൽ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്കത് കോൺഫിഗർ ചെയ്യാം.

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

നിങ്ങളുടെ nginx ഇൻസ്റ്റാളേഷൻ/കോൺഫിഗറേഷൻ പ്രക്രിയയ്ക്കിടയിൽ നിങ്ങൾക്ക് എന്തെങ്കിലും തിരിച്ചടികൾ നേരിടുകയോ അല്ലെങ്കിൽ എന്തെങ്കിലും ചോദ്യങ്ങളോ അഭിപ്രായങ്ങളോ ഉണ്ടെങ്കിൽ, ഞങ്ങളെ ബന്ധപ്പെടുന്നതിന് ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം ഉപയോഗിക്കുക.