ആർച്ച് ലിനക്സിൽ Nginx വെബ് സെർവർ ഉപയോഗിച്ച് വെർച്വൽ ഹോസ്റ്റുകൾ, പാസ്uവേഡ് പ്രൊട്ടക്റ്റ് ഡയറക്uടറികൾ, SSL സർട്ടിഫിക്കറ്റുകൾ എന്നിവ സൃഷ്uടിക്കുക


മുമ്പത്തെ ആർച്ച് ലിനക്uസ് 'LEMP' ലേഖനം നെറ്റ്uവർക്ക് സേവനങ്ങൾ (Nginx, MySQL ഡാറ്റാബേസ്, PhpMyAdmin) ഇൻസ്റ്റാൾ ചെയ്യുന്നതിൽ നിന്നും MySQL സെർവറിനും PhpMyadmin-നും ആവശ്യമായ കുറഞ്ഞ സുരക്ഷ കോൺഫിഗർ ചെയ്യുന്നതിൽ നിന്നും അടിസ്ഥാന കാര്യങ്ങൾ ഉൾക്കൊള്ളുന്നു.

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

Arch Linux-ൽ MariaDB ഡാറ്റാബേസിനൊപ്പം LEMP ഇൻസ്റ്റാൾ ചെയ്യുക

ഘട്ടം 1: Nginx-ൽ വെർച്വൽ ഹോസ്റ്റുകൾ പ്രവർത്തനക്ഷമമാക്കുക

പ്രധാന Nginx കോൺഫിഗറേഷൻ ഫയലിൽ ഉൾപ്പെടുത്തുക പ്രസ്താവനകൾ ഉപയോഗിക്കുന്നു വെർച്വൽ ഹോസ്റ്റുകൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിനുള്ള ഏറ്റവും ലളിതമായ മാർഗ്ഗം, നിങ്ങൾക്ക് ലളിതമായ ഫയലുകൾ സൃഷ്ടിക്കാൻ കഴിയുന്നതിനാൽ കൂടുതൽ കോൺഫിഗറേഷനുകളുടെ ജോലി കൂടുതൽ ലളിതവും കാര്യക്ഷമവുമാക്കുന്നു. ഓരോ പുതിയ ഹോസ്റ്റിനും പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ ക്ലീനർ ആയി സൂക്ഷിക്കുക.

ഈ സമീപനം Apache Web Server-ലെ പോലെ തന്നെ പ്രവർത്തിക്കുന്നു, നിങ്ങൾ ആദ്യം ചെയ്യേണ്ടത് Nginx ഫയൽ നിർദ്ദേശങ്ങൾ വായിക്കേണ്ട പുതിയ URI പാത വ്യക്തമാക്കുക എന്നതാണ്.

1. അതിനാൽ, /etc/nginx/ സിസ്റ്റം പാതയിലും താഴെയും സ്ഥിതി ചെയ്യുന്ന പ്രധാന ഫയൽ nginx.conf തുറക്കുക, അവസാന ചുരുണ്ട ബ്രാക്കറ്റിന് മുമ്പായി “}” ഭാവിയിലെ വെർച്വൽ ഹോസ്റ്റ് കോൺഫിഗറേഷൻ ഫയലുകൾ താമസിക്കുന്ന പാത ചേർക്കുക.

$ sudo nano /etc/nginx/nginx.conf

ചുവടെ ഇനിപ്പറയുന്ന പ്രസ്താവന ചേർക്കുക.

include /etc/nginx/sites-enabled/*.conf;

.conf വിപുലീകരണത്തിൽ അവസാനിക്കുന്ന /etc/nginx/sites-enabled/ എന്നതിൽ കാണുന്ന എല്ലാ ഫയലുകളും വായിക്കണമെന്ന് ഈ നിർദ്ദേശം Nginx-നോട് പറയുന്നു.

2. അടുത്ത ഘട്ടം സൈറ്റുകൾ പ്രവർത്തനക്ഷമമാക്കിയ ഡയറക്uടറിയും സൈറ്റുകൾ-ലഭ്യം എന്ന് വിളിക്കപ്പെടുന്ന മറ്റൊന്നും സൃഷ്uടിക്കുക എന്നതാണ്, അവിടെ നിങ്ങളുടെ എല്ലാ വെർച്വൽ ഹോസ്റ്റ് കോൺഫിഗറേഷൻ ഫയലുകളും നിങ്ങൾ സംഭരിക്കുന്നു.

$ sudo mkdir /etc/nginx/sites-available /etc/nginx/sites-enabled

3. ഇപ്പോൾ ഒരു പുതിയ വെർച്വൽ ഹോസ്റ്റ് സൃഷ്ടിക്കാൻ സമയമായി. ഈ ഉദാഹരണം സിസ്റ്റം IP വിലാസം വെർച്വൽ ഹോസ്റ്റ് നാമമായി ഉപയോഗിക്കും, അതിനാൽ name-ip.conf എന്ന പേരിൽ ഒരു പുതിയ ഫയൽ സൃഷ്ടിക്കുക.

sudo nano /etc/nginx/sites-available/name-ip.conf

ഇനിപ്പറയുന്ന ഉള്ളടക്കം ചേർക്കുക.

## File content ##

server {
    listen 80;
    server_name 192.168.1.33;

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

    root /srv/http;
    location / {
    index index.html index.htm index.php;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
 }
    location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

ലിസണിംഗ് പോർട്ടിന് കീഴിലുള്ള server_name പ്രസ്താവനയാണ് വെർച്വൽ ഹോസ്റ്റ് സജീവമാക്കുന്ന നിർദ്ദേശം. കൂടാതെ, /srv/http/ സിസ്റ്റം പാത്തിൽ നിന്ന് ഫയൽ ഉള്ളടക്കം നൽകുന്നതിന് Nginx വെർച്വൽ ഹോസ്റ്റിനെ ചൂണ്ടിക്കാണിക്കുന്ന റൂട്ട് പ്രസ്താവനയാണ് ഇവിടെയുള്ള മറ്റൊരു പ്രധാന നിർദ്ദേശം.

4. അവസാന ഘട്ടം /srv/http/ ഡയറക്uടറി സൃഷ്uടിക്കുകയും name-ip.conf ഫയൽ കോൺഫിഗറേഷൻ Nginx വായനയ്uക്കായി ലഭ്യമാക്കുക (സിംബോളിക് ലിങ്ക് ഉപയോഗിച്ച്), തുടർന്ന് ഡെമൺ പുനരാരംഭിക്കുക എന്നതാണ്. പുതിയ കോൺഫിഗറേഷനുകൾ ദൃശ്യമാക്കാൻ.

$ sudo mkdir /srv/http/
$ sudo ln -s /etc/nginx/sites-available/name-ip.conf /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx

5. ഇത് സ്ഥിരീകരിക്കുന്നതിന്, നിങ്ങളുടെ ബ്രൗസർ ആർച്ച് സിസ്റ്റം IP വിലാസത്തിലേക്ക് പോയിന്റ് ചെയ്യുക, വെബ് ഉള്ളടക്കം http://localhost എന്നതിൽ നിന്ന് വ്യത്യസ്തമാണെന്ന് നിങ്ങൾ കാണും. ചുവടെയുള്ള സ്ക്രീൻഷോട്ടിലെ പോലെ FastCGI PHP കോൺഫിഗറേഷനുകളും പരിശോധിക്കുന്ന ഒരു ചെറിയ php സ്ക്രിപ്റ്റ് ഞാൻ ഇവിടെ ചേർത്തിട്ടുണ്ട്.

$ sudo nano /srv/http/info.php
## File content ##

<?php
phpinfo();
?>

6. Nginx-ലെ വെർച്വൽ ഹോസ്റ്റുകൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിനോ പ്രവർത്തനരഹിതമാക്കുന്നതിനോ ഞാൻ സ്വയം വികസിപ്പിച്ചെടുത്ത മറ്റൊരു രീതി കൂടുതൽ ഗംഭീരമാണ്, ഇത് Apache a2eniste സ്ക്രിപ്റ്റിൽ നിന്ന് പ്രചോദനം ഉൾക്കൊണ്ടതാണ്.

ഈ രീതി ഉപയോഗിക്കുന്നതിന്, താഴെയുള്ള ഉള്ളടക്കമുള്ള നിങ്ങളുടെ $HOME പാതയിൽ ഒരു ഫയൽ എഡിറ്റർ തുറന്ന് n2ensite എന്ന പേരിൽ ഒരു പുതിയ ഫയൽ സൃഷ്ടിക്കുക, അത് എക്സിക്യൂട്ടബിൾ ആക്കുക, റൂട്ട് പ്രത്യേകാവകാശങ്ങൾ ഉപയോഗിച്ച് പ്രവർത്തിപ്പിക്കുക കൂടാതെ .conf അവസാനിക്കാതെ നിങ്ങളുടെ പുതിയ വെർച്വൽ ഹോസ്റ്റ് നാമത്തിലേക്ക് ഒരു ഓപ്uഷനായി കടന്നുപോകുക (നിങ്ങളുടെ ആവശ്യങ്ങൾക്കനുസരിച്ച് ഇത് സൗജന്യമായി പൂരിപ്പിക്കുക).

$ sudo nano n2ensite
## File content ##

#!/bin/bash
if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled  ; then
echo "-----------------------------------------------"
else
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
fi

avail=/etc/nginx/sites-available/$1.conf
enabled=/etc/nginx/sites-enabled/
site=`ls /etc/nginx/sites-available/`

if [ "$#" != "1" ]; then
                echo "Use script: n2ensite virtual_site"
                echo -e "\nAvailable virtual hosts:\n$site"
                exit 0
else

if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Success!! Now restart nginx server: sudo systemctl restart nginx"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi

ഇത് എക്സിക്യൂട്ടബിൾ ആക്കി ഷോ ആയി റൺ ചെയ്യുക.

$ sudo chmod +x n2ensite
$ sudo ./n2ensite your_virtual_host

7. വെർച്വൽ ഹോസ്റ്റുകൾ അപ്രാപ്uതമാക്കുന്നതിന് ഇനിപ്പറയുന്ന ഉള്ളടക്കമുള്ള ഒരു പുതിയ n2dissite ഫയൽ സൃഷ്uടിക്കുകയും മുകളിൽ പറഞ്ഞിരിക്കുന്ന അതേ ക്രമീകരണങ്ങൾ പ്രയോഗിക്കുകയും ചെയ്യുക.

$ sudo nano n2dissite
## File content ##

#!/bin/bash
avail=/etc/nginx/sites-enabled/$1.conf
enabled=/etc/nginx/sites-enabled
site=`ls /etc/nginx/sites-enabled/`

if [ "$#" != "1" ]; then
                echo "Use script: n2dissite virtual_site"
                echo -e "\nAvailable virtual hosts: \n$site"
                exit 0
else
if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nPlease restart Nginx: sudo systemctl restart nginx"
exit 0
fi
fi

8. ഇപ്പോൾ നിങ്ങൾക്ക് ഈ രണ്ട് സ്ക്രിപ്റ്റുകൾ ഉപയോഗിച്ച് ഏതെങ്കിലും വെർച്വൽ ഹോസ്റ്റ് പ്രവർത്തനക്ഷമമാക്കാനോ പ്രവർത്തനരഹിതമാക്കാനോ കഴിയും, എന്നാൽ നിങ്ങൾക്ക് ഇത് സിസ്റ്റം വൈഡ് കമാൻഡുകളായി പ്രയോഗിക്കണമെങ്കിൽ രണ്ട് സ്ക്രിപ്റ്റുകളും /usr/local/bin/ ലേക്ക് പകർത്തുക, തുടർന്ന് നിങ്ങൾക്ക് കഴിയും പാത വ്യക്തമാക്കാതെ അത് ഉപയോഗിക്കുക.

$ sudo cp n2ensite n2dissite /usr/local/bin/

ഘട്ടം 2: Nginx-ൽ വെർച്വൽ ഹോസ്റ്റുകൾ ഉപയോഗിച്ച് SSL പ്രവർത്തനക്ഷമമാക്കുക

SSL (Secure Sockets Layer) എന്നത് നെറ്റ്uവർക്കുകളിലോ ഇൻറർനെറ്റിലോ ഉള്ള HTTP കണക്ഷനുകൾ എൻക്രിപ്റ്റ് ചെയ്യാൻ രൂപകൽപ്പന ചെയ്ത ഒരു പ്രോട്ടോക്കോൾ ആണ്, ഇത് സമമിതി/അസിമട്രിക് ക്രിപ്uറ്റോഗ്രാഫി കീകൾ ഉപയോഗിച്ച് സുരക്ഷിതമായ ചാനലിലൂടെ ഡാറ്റാ ഫ്ലോ സംപ്രേക്ഷണം ചെയ്യുന്നു. ഓപ്പൺഎസ്എസ്എൽ പാക്കേജ് വഴി ആർച്ച് ലിനക്സിൽ നൽകിയിരിക്കുന്നു.

$ sudo pacman -S openssl

9. Nginx-നൊപ്പം HTTPS കണക്ഷനുകൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിന് നിങ്ങൾ ആദ്യം ചെയ്യേണ്ടത് വെർച്വൽ ഹോസ്റ്റ് കീകൾ സൃഷ്ടിക്കുക എന്നതാണ്. കൂടാതെ, കാര്യങ്ങൾ ലളിതമാക്കാൻ, ഞാൻ ഒരു ചെറിയ സ്ക്രിപ്റ്റുകൾ വികസിപ്പിച്ചെടുത്തിട്ടുണ്ട്, അത് /etc/nginx/ssl ഡയറക്uടറി പാതയിൽ സ്വയമേവ ക്രിപ്uറ്റോഗ്രാഫിക് കീകൾ ജനറേറ്റുചെയ്യുന്നു, വെർച്വൽ ഹോസ്റ്റ് നാമകരണം കീ പേരുകളായി ഉപയോഗിക്കുന്നു.

nginx_gen_ssl എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്uടിച്ച് ഇനിപ്പറയുന്ന ഉള്ളടക്കം ചേർക്കുക.

$ sudo nano nginx_gen_ssl
## File content ##

#!/bin/bash
mkdir /etc/nginx/ssl
cd /etc/nginx/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Nginx  SSL certificate!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The certificate $cert has been generated!\nPlease link it to nginx ssl available website!"
ls -all /etc/nginx/ssl
exit 0

10. സ്uക്രിപ്റ്റ് സൃഷ്uടിച്ച ശേഷം, എക്uസിക്യൂഷൻ അനുമതികൾ ചേർക്കുക, അത് പ്രവർത്തിപ്പിച്ച് നിങ്ങളുടെ സർട്ടിഫിക്കറ്റ് ഓപ്uഷനുകൾ നൽകുക, ഏറ്റവും പ്രധാനപ്പെട്ടത് പൊതു നാമം ഫീൽഡാണ് (ഔദ്യോഗിക ഡൊമെയ്uൻ നാമം ഇവിടെ ചേർക്കുക) കൂടാതെ പാസ്uവേഡും ഓപ്uഷണൽ കമ്പനി ഫീൽഡുകളും ശൂന്യമാക്കുക .

$ sudo chmod +x nginx_gen_ssl
$ sudo ./nginx_gen_ssl

കീകൾ സൃഷ്ടിക്കുന്ന ടാസ്uക്കിന്റെ അവസാനം, Nginx ssl ഡയറക്uടറിക്ക് കീഴിൽ ലഭ്യമായ എല്ലാ കീകളുമുള്ള ഒരു ലിസ്uറ്റിംഗ് പ്രദർശിപ്പിക്കും.

കൂടാതെ ഈ സ്ക്രിപ്റ്റ് ഒരു സിസ്റ്റം കമാൻഡായി ഉപയോഗിക്കണമെങ്കിൽ, അത് /usr/local/bin/ എന്നതിലേക്ക് പകർത്തുകയോ നീക്കുകയോ ചെയ്യുക.

$ sudo mv nginx_gen_ssl  /usr/local/bin

11. Nginx SSL വെർച്വൽ ഹോസ്റ്റിന് ആവശ്യമായ കീകൾ ഞങ്ങൾ ജനറേറ്റുചെയ്uതതിനുശേഷം യഥാർത്ഥത്തിൽ SSL വെർച്വൽ ഹോസ്റ്റ് കോൺഫിഗറേഷൻ ഫയൽ സൃഷ്uടിക്കാനുള്ള സമയമാണിത്. വെർച്വൽ ഹോസ്റ്റിനായി server_name നിർദ്ദേശത്തിൽ മുകളിലുള്ള അതേ സിസ്റ്റം IP വിലാസം ഉപയോഗിക്കുക എന്നാൽ, ഈ ഫയൽ നിങ്ങളെ ഓർമ്മിപ്പിക്കുന്നതിന്, .conf-ന് മുമ്പ് ssl ചേർത്ത് വെർച്വൽ ഹോസ്റ്റ് ഫയലിന്റെ പേര് ചെറുതായി മാറ്റുക. name-ip SSL വെർച്വൽ ഹോസ്റ്റിനെ സൂചിപ്പിക്കുന്നു.

$ sudo nano /etc/nginx/sites-availabe/name-ip-ssl.conf

ഈ ഫയലിൽ ശ്രവിക്കുക പോർട്ട് സ്റ്റേറ്റ്uമെന്റ് 443 ssl-ലേക്ക് മാറ്റുക, കൂടാതെ ചുവടെയുള്ള ഉദ്ധരണിയിൽ കാണുന്നത് പോലെ SSL, സർട്ടിഫിക്കറ്റ് കീ ഫയലുകളുടെ പാഥുകൾ നേരത്തെ സൃഷ്ടിച്ചവ നൽകുക.

## File content ##

server {
    listen 443 ssl;
    server_name 192.168.1.33;

       ssl_certificate     /etc/nginx/ssl/192.168.1.33.crt;
       ssl_certificate_key  /etc/nginx/ssl/192.168.1.33.key;

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

    access_log /var/log/nginx/192.168.1.33-ssl.access.log;
    error_log /var/log/nginx/192.168.1.33-ssl.error.log;
    root /srv/http;
    location / {
    index index.html index.htm index.php;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
 }
    location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }
    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

12. ഫയൽ സൃഷ്ടിച്ച ശേഷം, അത് സജീവമാക്കുന്നതിന് n2ensite സ്ക്രിപ്റ്റ് അല്ലെങ്കിൽ ln കമാൻഡ് ലൈൻ ഉപയോഗിക്കുക (sites-enabled ഡയറക്ടറിയിൽ ഒരു ഫയൽ പ്രതീകാത്മക ലിങ്ക് സൃഷ്ടിക്കുന്നു ), തുടർന്ന് ക്രമീകരണങ്ങൾ പ്രയോഗിക്കാൻ Nginx ഡെമൺ പുനരാരംഭിക്കുക.

$ sudo ./n2ensite name-ip-ssl
OR
$ sudo ln -s /etc/nginx/sites-available/name-ip-ssl.conf /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx

13. വീണ്ടും നിങ്ങളുടെ ബ്രൗസർ ആർച്ച് IP URL-ലേക്ക് പോയിന്റ് ചെയ്യുക, എന്നാൽ ഇത്തവണ HTTPS പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നു - https://192.168.1.33 എന്റെ സിസ്റ്റത്തിൽ- കൂടാതെ ഒരു കണക്ഷൻ വിശ്വസനീയമല്ല സുരക്ഷാ പിശക് ദൃശ്യമാകും ( പേജിൽ കൂടുതൽ പോകുന്നതിന് സുരക്ഷാ ഒഴിവാക്കൽ ചേർക്കുകയും സ്ഥിരീകരിക്കുകയും ചെയ്യുക).

നിങ്ങൾക്ക് ഇപ്പോൾ കാണാനാകുന്നതുപോലെ, നിങ്ങളുടെ Nginx വെർച്വൽ ഹോസ്റ്റ് മുമ്പത്തെ name-ip ഹോസ്റ്റിന്റെ അതേ ഉള്ളടക്കം നൽകുന്നു, എന്നാൽ ഇത്തവണ ഒരു HTTP സുരക്ഷിത കണക്ഷൻ ഉപയോഗിക്കുന്നു.

ഘട്ടം 3: വെർച്വൽ ഹോസ്റ്റ് വഴി PhpMyAdmin ആക്സസ് ചെയ്യുക

Nginx-ൽ വെർച്വൽ ഹോസ്റ്റ് പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ, ഞങ്ങൾക്ക് ഇനി http://localhost പാത്ത് ഉള്ളടക്കങ്ങളിലേക്ക് ആക്uസസ് ഉണ്ടാകില്ല ( ലോക്കൽഹോസ്റ്റ് സാധാരണയായി ലൂപ്പ്ബാക്ക് ഐപി വിലാസം ഉപയോഗിച്ചോ അല്ലെങ്കിൽ കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിൽ സിസ്റ്റം ഐപി വിലാസം ഉപയോഗിച്ചോ ഉള്ളടക്കം നൽകുന്നു) ആർച്ച് സിസ്റ്റം IP server_name ആയി ഉപയോഗിച്ചതിനാൽ ഞങ്ങളുടെ ഉള്ളടക്ക പാത മാറി.

14. വെബിലൂടെ PhpMyAdmin-ലേക്ക് ആക്uസസ് നേടുന്നതിനുള്ള ഏറ്റവും ലളിതമായ മാർഗ്ഗം, /usr/share/webapps/phpMyAdmin/ പാതയും ഞങ്ങളുടെ പുതിയ നിർവ്വചിച്ച വെർച്വൽ ഹോസ്റ്റ് പാതയും തമ്മിൽ ഒരു പ്രതീകാത്മക ലിങ്ക് സൃഷ്ടിക്കുക എന്നതാണ്. (/srv/http).

$ sudo ln -s /usr/share/webapps/phpMyAdmin/ /srv/http/

15. നിങ്ങൾ മുകളിലെ കമാൻഡ് എക്uസിക്യൂട്ട് ചെയ്uതതിന് ശേഷം, നിങ്ങളുടെ പേജ് പുതുക്കിയെടുക്കുക, Nginx വെർച്വൽ ഹോസ്റ്റിൽ autoindex സ്റ്റേറ്റ്uമെന്റ് പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ അല്ലെങ്കിൽ നിങ്ങളുടെ URL നേരിട്ട് PhpMyAdmin ഫോൾഡറിലേക്ക് പോയിന്റ് ചെയ്യുക https: ഒരു പുതിയ ഫോൾഡർ phpMyAdmin ദൃശ്യമാകുന്നത് നിങ്ങൾ കാണും. //arch_IP/phpMyAdmin.

16. ബ്രൗസറിൽ phpMyAdmin സ്ട്രിംഗ് സാനിറ്റൈസ് ചെയ്യണമെങ്കിൽ നിങ്ങളുടെ വെർച്വൽ ഹോസ്റ്റ് ഫയലുകൾ എഡിറ്റ് ചെയ്ത് സെർവർ ബ്ലോക്കിന് കീഴിൽ ഇനിപ്പറയുന്ന ഉള്ളടക്കം ചേർക്കുക.

location /phpmyadmin {
       rewrite ^/* /phpMyAdmin last;
    }

ഘട്ടം 4: Nginx-ൽ പാസ്uവേഡ് പരിരക്ഷിത ഡയറക്ടറി പ്രവർത്തനക്ഷമമാക്കുക

അപ്പാച്ചെയിൽ നിന്ന് വ്യത്യസ്തമായി, പാസ്uവേഡ് പരിരക്ഷിത ഡയറക്uടറികൾ പ്രവർത്തനക്ഷമമാക്കാൻ Nginx HttpAuthBasic മൊഡ്യൂൾ ഉപയോഗിക്കുന്നു, എന്നാൽ ഒരു എൻക്രിപ്റ്റ് ചെയ്uത .htpasswd ഫയൽ സൃഷ്uടിക്കുന്നതിന് ഉപകരണങ്ങളൊന്നും നൽകുന്നില്ല.

17. Arch Linux-ൽ Nginx-ൽ ഡയറക്uടറി പാസ്uവേഡ് പരിരക്ഷ നേടുന്നതിന് അപ്പാച്ചെ വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുകയും അതിന്റെ ടൂളുകൾ ഉപയോഗിച്ച് ഒരു എൻക്രിപ്റ്റ് ചെയ്ത .htaccess ഫയൽ സൃഷ്ടിക്കുകയും ചെയ്യുക.

$ sudo pacman -S apache

18. നിങ്ങൾ അപ്പാച്ചെ ഇൻസ്റ്റാൾ ചെയ്തതിന് ശേഷം, /etc/nginx/ എന്നതിന് കീഴിൽ ഒരു പുതിയ ഡയറക്ടറി സൃഷ്ടിക്കുക, അതിൽ .htpasswd ഫയൽ സംഭരിക്കുകയും htpasswd ഉപയോഗിക്കുകയും ചെയ്യും. > കമാൻഡ് –c ഉപയോഗിച്ച് ആദ്യം ചേർത്ത ഉപയോക്താവിനെ ഫയൽ സൃഷ്uടിക്കാൻ സ്വിച്ച് ഓൺ ചെയ്യുക, തുടർന്ന് നിങ്ങൾക്ക് കൂടുതൽ ഉപയോക്താക്കളെ ചേർക്കണമെങ്കിൽ –c സ്വിച്ച് ഇല്ലാതെ htpasswd ഉപയോഗിക്കുക.

$ sudo mkdir /etc/nginx/passwd

$ sudo htpasswd -c /etc/nginx/passwd/.htpasswd first_user
$ sudo htpasswd /etc/nginx/passwd/.htpasswd second_user
$ sudo htpasswd /etc/nginx/passwd/.htpasswd third_user

19. name-ip-ssl വെർച്വൽ ഹോസ്റ്റ് റൂട്ട് /srv/http/ അതിന്റെ എല്ലാ സബ് ഫോൾഡറുകളും ഫയലുകളുമുള്ള പാത്ത് പരിരക്ഷിക്കുന്നതിന് നിങ്ങളുടെ ഉള്ളിൽ ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങൾ ചേർക്കുക റൂട്ട് ഡയറക്uടീവിന് കീഴിൽ വെർച്വൽ ഹോസ്റ്റ് സെർവർ ബ്ലോക്ക് ചെയ്uത് അതിനെ സമ്പൂർണ്ണ .htpasswd ഫയൽ പാതയിലേക്ക് ചൂണ്ടിക്കാണിക്കുക.

auth_basic "Restricted Website";
auth_basic_user_file /etc/nginx/passwd/.htpasswd;

20. നിങ്ങൾ Nginx സേവനം പുനരാരംഭിച്ചതിന് ശേഷം, പേജ് പുതുക്കിയെടുക്കുകയും നിങ്ങളുടെ ക്രെഡൻഷ്യലുകൾ ആവശ്യപ്പെടുന്ന ഒരു ആധികാരികത ആവശ്യമാണ് ഒരു പോപ്പ്അപ്പ് ദൃശ്യമാകുകയും ചെയ്യും.

ഇപ്പോൾ നിങ്ങൾ Nginx പാസ്uവേഡ് സംരക്ഷിത ഡയറക്uടറികൾ പ്രവർത്തനക്ഷമമാക്കി, എന്നാൽ അതേ സമയം തന്നെ അപ്പാച്ചെ വെബ് സെർവർ നിങ്ങളുടെ സിസ്റ്റത്തിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് അറിഞ്ഞിരിക്കുക, അതിനാൽ അത് പ്രവർത്തനരഹിതമാക്കിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക, ഒരു തരത്തിലും ഇത് ആരംഭിക്കരുത്, കാരണം ഇത് സംഭവിക്കാം Nginx-മായി വൈരുദ്ധ്യമുള്ള പോർട്ടുകൾ.

ഘട്ടം 5: Nginx-ലെ HTTP-ലേക്ക് HTTP റീഡയറക്uട് ചെയ്യുക

21. സുരക്ഷിതമല്ലാത്ത എല്ലാ HTTP അഭ്യർത്ഥനകളും HTTPS പ്രോട്ടോക്കോളിലേക്ക് ബ്രൗസറുകൾ സ്വയമേവ റീഡയറക്uട് ചെയ്യണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ നിങ്ങൾ ssl അല്ലാത്ത വെർച്വൽ ഹോസ്റ്റ് ആണെന്ന് എഡിറ്റ് ചെയ്ത് server_name നിർദ്ദേശത്തിന് കീഴിൽ ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങൾ ചേർക്കുക .

rewrite        ^ https://$server_name$request_uri? permanent;

ഒരു സെർവറായി പ്രവർത്തിക്കുന്ന Arch Linux സിസ്റ്റത്തിന് കീഴിൽ നിർമ്മിച്ച ഈ ലേഖനത്തിൽ അവതരിപ്പിച്ചിരിക്കുന്ന എല്ലാ ക്രമീകരണങ്ങളും, എന്നാൽ അവയിൽ മിക്കതും, പ്രത്യേകിച്ച് Nginx കോൺഫിഗറേഷൻ ഫയലുകളെ സംബന്ധിച്ചുള്ളവ, ചെറിയ വ്യത്യാസങ്ങളോടെ മിക്ക Linux സിസ്റ്റങ്ങളിലും ലഭ്യമാണ്.