ສ້າງໂຮດຕິ້ງແບບ virtual, ການປ້ອງກັນລະຫັດຜ່ານແລະໃບຢັ້ງຢືນ SSL ໂດຍໃຊ້ "Nginx Web Server" ໃນ Arch Linux


ບົດຂຽນ Arch Linux 'LEMP' ກ່ອນ ໜ້າ ນີ້ພຽງແຕ່ກວມເອົາບັນດາສິ່ງພື້ນຖານ, ຈາກການຕິດຕັ້ງບໍລິການເຄືອຂ່າຍ (Nginx, ຖານຂໍ້ມູນ MySQL ແລະ PhpMyAdmin) ແລະຕັ້ງຄ່າຄວາມປອດໄພ ໜ້ອຍ ທີ່ສຸດ ສຳ ລັບ MySQL server ແລະ PhpMyadmin.

ຫົວຂໍ້ນີ້ມັນກ່ຽວຂ້ອງຢ່າງເຂັ້ມງວດກັບການຕິດຕັ້ງ LEMP ໃນ Arch Linux ເກົ່າແລະຈະ ນຳ ພາທ່ານຜ່ານການຕັ້ງຄ່າການຕັ້ງຄ່າທີ່ສັບສົນກວ່າເກົ່າ ສຳ ລັບ LEMP stack, ໂດຍສະເພາະ Nginx ການຕັ້ງຄ່າເຊີບເວີເວັບ, ເຊັ່ນການສ້າງ ໂຮດຕິ້ງ , ໃຊ້ ໄດເລກະທໍລີທີ່ຖືກປ້ອງກັນລະຫັດຜ່ານ ສ້າງແລະຕັ້ງຄ່າ HTTP Secure Sockets Layer , ການໂອນ ໜ້າ ທີ່ HTTP ທີ່ບໍ່ປອດໄພໃຫ້ HTTPS ແລະຍັງຈະ ນຳ ສະ ເໜີ ຕົວອັກສອນ Bash ທີ່ມີປະໂຫຍດບາງຢ່າງໃຫ້ທ່ານ ຈະຊ່ວຍໃຫ້ວຽກງ່າຍໃນການເປີດໃຊ້ Virtual Hosts ແລະສ້າງ ໃບຢັ້ງຢືນ SSL ແລະກຸນແຈ .

ຕິດຕັ້ງ LEMP ກັບຖານຂໍ້ມູນ MariaDB ໃນ Arch Linux

ຂັ້ນຕອນທີ 1: ເປີດໃຊ້ Virtual Hosts ເທິງ Nginx

ໜຶ່ງ ໃນວິທີທີ່ງ່າຍທີ່ສຸດທີ່ຈະເຮັດໃຫ້ ໂຮດຕິ້ງ Virtual ກຳ ລັງໃຊ້ ລວມ ຄຳ ເວົ້າໃນເອກະສານການຕັ້ງຄ່າ Nginx ຕົ້ນຕໍເຊິ່ງເຮັດໃຫ້ວຽກຂອງການຕັ້ງຄ່າຕໍ່ໄປມີຄວາມງ່າຍດາຍແລະມີປະສິດທິພາບຫຼາຍຂື້ນເພາະວ່າທ່ານສາມາດສ້າງເອກະສານງ່າຍໆ ສຳ ລັບເຈົ້າພາບ ໃໝ່ ທຸກໆຄົນແລະຮັກສາໄຟລ໌ການຕັ້ງຄ່າຕົ້ນຕໍໃຫ້ສະອາດ.

ວິທີການນີ້ເຮັດວຽກຄືກັບໃນ Apache Web Server ສິ່ງ ທຳ ອິດທີ່ທ່ານຕ້ອງເຮັດຄືການລະບຸເສັ້ນທາງ URI ໃໝ່ ທີ່ Nginx ຄວນອ່ານທິດທາງເອກະສານ.

1. ດັ່ງນັ້ນ, ເປີດ nginx.conf ເອກະສານຫຼັກທີ່ຕັ້ງຢູ່ໃນເສັ້ນທາງຂອງລະບົບ /etc/nginx/ ແລະຢູ່ທາງລຸ່ມ, ກ່ອນວົງເລັບສຸດທ້າຍ“ } >” ເພີ່ມເສັ້ນທາງທີ່ເອກະສານການຕັ້ງຄ່າ Virtual Host ໃນອະນາຄົດຈະຢູ່.

$ sudo nano /etc/nginx/nginx.conf

ຢູ່ທາງລຸ່ມຕື່ມ ຄຳ ຖະແຫຼງຕໍ່ໄປນີ້.

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

ຄຳ ສັ່ງແນະ ນຳ ນີ້ບອກ Nginx ວ່າມັນຄວນອ່ານທຸກເອກະສານທີ່ພົບໃນ /etc/nginx/sites-enabled/ ທີ່ສິ້ນສຸດດ້ວຍການຂະຫຍາຍ .conf .

2. ຂັ້ນຕອນຕໍ່ໄປແມ່ນການສ້າງໄດເລກະທໍລີ ທີ່ເປີດໃຊ້ ແລະອີກອັນ ໜຶ່ງ ທີ່ເອີ້ນວ່າ sites-available ທີ່ຢູ່ທ່ານເກັບແຟ້ມເອກະສານການຕັ້ງຄ່າ Virtual Hosts ຂອງທ່ານທັງ ໝົດ.

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

3. ດຽວນີ້ເຖິງເວລາແລ້ວທີ່ຈະສ້າງ Virtual Host ໃໝ່. ຕົວຢ່າງນີ້ຈະໃຊ້ທີ່ຢູ່ IP ຂອງລະບົບເປັນຊື່ໂຮດ Virtual Virtual, ດັ່ງນັ້ນສ້າງແຟ້ມເອກະສານ ໃໝ່ ທີ່ມີຊື່ວ່າ ຊື່-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;
    }
}

ຄຳ ສັ່ງທີ່ເປີດໃຊ້ Virtual Host ແມ່ນ ຄຳ ສັ່ງ server_name ທີ່ຢູ່ພາຍໃຕ້ການຟັງ. ພ້ອມກັນນັ້ນ, ຄຳ ສັ່ງແນະ ນຳ ທີ່ ສຳ ຄັນອີກອັນ ໜຶ່ງ ຢູ່ນີ້ແມ່ນ ຄຳ ສັ່ງ ຮາກ ທີ່ຊີ້ໃຫ້ Nginx Virtual Host ຮັບໃຊ້ເນື້ອຫາເອກະສານຈາກເສັ້ນທາງລະບົບ /srv/http/.

4. ຂັ້ນຕອນສຸດທ້າຍແມ່ນການສ້າງໄດເລກະທໍລີ /srv/http/ ແລະເຮັດການຕັ້ງຄ່າເອກະສານ ຊື່-ip.conf ທີ່ມີໄວ້ໃຫ້ອ່ານ Nginx (ໂດຍໃຊ້ສັນຍາລັກ), ຫຼັງຈາກນັ້ນເລີ່ມຕົ້ນ daemon ເພື່ອເຮັດໃຫ້ການຕັ້ງຄ່າ ໃໝ່ ເບິ່ງເຫັນ.

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

5. ເພື່ອຢັ້ງຢືນມັນ, ໃຫ້ຕົວທ່ອງເວັບຂອງທ່ານໄປທີ່ລະບົບ IP ຂອງລະບົບ Arch ແລະທ່ານຄວນຈະເຫັນວ່າເນື້ອຫາຂອງເວັບແມ່ນແຕກຕ່າງຈາກ http:// localhost . ນີ້ຂ້ອຍໄດ້ເພີ່ມສະຄິບ php ຂະ ໜາດ ນ້ອຍທີ່ກວດເບິ່ງການຕັ້ງຄ່າ FastCGI PHP ຄືກັບ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້.

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

<?php
phpinfo();
?>

6. ອີກວິທີ ໜຶ່ງ ທີ່ຂ້ອຍໄດ້ພັດທະນາຕົນເອງເພື່ອເປີດຫລືປິດ Virtual Hosts ເທິງ Nginx ແມ່ນວິທີການທີ່ສະຫງ່າງາມກວ່າແລະມັນໄດ້ຮັບແຮງບັນດານໃຈຈາກອັກສອນ Apache a2eniste .

ເພື່ອໃຊ້ວິທີນີ້ເປີດບັນນາທິການແຟ້ມເອກະສານແລະສ້າງແຟ້ມເອກະສານ ໃໝ່, ທີ່ມີຊື່ວ່າ n2ensite ຕາມເສັ້ນທາງ $HOME ຂອງທ່ານທີ່ມີເນື້ອຫາຂ້າງລຸ່ມນີ້, ເຮັດໃຫ້ມັນສາມາດປະຕິບັດໄດ້, ດຳ ເນີນການດ້ວຍສິດທິພິເສດຮາກ ແລະຜ່ານທາງເລືອກ ສຳ ລັບຊື່ Virtual Host ໃໝ່ ຂອງທ່ານໂດຍບໍ່ຕ້ອງສິ້ນສຸດ . ຕື່ມ (ຕື່ມຂໍ້ມູນທີ່ບໍ່ເສຍຄ່າເພື່ອດັດແປງມັນຕາມຄວາມຕ້ອງການຂອງທ່ານ).

$ 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. ເພື່ອປິດການໃຊ້ Virtual Hosts ສ້າງແຟ້ມ n2dissite ໃໝ່ ທີ່ມີເນື້ອຫາຕໍ່ໄປນີ້ແລະ ນຳ ໃຊ້ການຕັ້ງຄ່າຄືກັນກັບຂ້າງເທິງ.

$ 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. ດຽວນີ້ທ່ານສາມາດໃຊ້ສະຄິບສອງສະບັບນີ້ເພື່ອເປີດໃຊ້ງານຫຼືປິດ Virtual Host ໃດໆແຕ່ຖ້າທ່ານຕ້ອງການ ນຳ ໃຊ້ມັນເປັນ ຄຳ ສັ່ງກວ້າງຂອງລະບົບພຽງແຕ່ ສຳ ເນົາສະຄິບທັງສອງໃຫ້ /usr/local/bin/ ແລະຫຼັງຈາກນັ້ນທ່ານສາມາດ ໃຊ້ມັນໂດຍບໍ່ຕ້ອງລະບຸເສັ້ນທາງ.

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

ຂັ້ນຕອນທີ 2: ເປີດໃຊ້ SSL ກັບ Virtual Hosts ເທິງ Nginx

SSL ( Secure Sockets Layer ) ແມ່ນໂປໂຕຄອນທີ່ຖືກອອກແບບມາເພື່ອເຂົ້າລະຫັດການເຊື່ອມຕໍ່ HTTP ຜ່ານເຄືອຂ່າຍຫຼືອິນເຕີເນັດ, ເຊິ່ງເຮັດໃຫ້ຂໍ້ມູນທີ່ໄຫຼເຂົ້າຜ່ານຊ່ອງທາງທີ່ປອດໄພໂດຍໃຊ້ຄີບອດ cryptography ທີ່ບໍ່ສົມດຸນ/asymmetric. ແລະຖືກຈັດຫາໃນ Arch Linux ໂດຍແພັກເກດ OpenSSL.

$ sudo pacman -S openssl

9. ເພື່ອໃຫ້ສາມາດເຊື່ອມຕໍ່ HTTPS ກັບ Nginx ທຳ ອິດທ່ານຄິດວ່າທ່ານຕ້ອງເຮັດຄືການສ້າງກະແຈ Virtual Hosts. ນອກຈາກນີ້, ເພື່ອງ່າຍໃນສິ່ງຕ່າງໆ, ຂ້ອຍໄດ້ພັດທະນາສະຄິບນ້ອຍໆທີ່ສ້າງຄີໂຄ້ດອັດຕະໂນມັດໃນເສັ້ນທາງໄດເລກະທໍລີ /etc/nginx/ssl , ໂດຍໃຊ້ຊື່ Virtual Host ເປັນຊື່ ສຳ ຄັນ.

ສ້າງແຟ້ມຊື່ວ່າ nginx_gen_ssl ແລະເພີ່ມເນື້ອຫາຕໍ່ໄປນີ້.

$ 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. ຫຼັງຈາກສະຄິບໄດ້ຖືກສ້າງຂື້ນໃນເອກະສານອະນຸຍາດການປະຕິບັດ, ເພີ່ມມັນແລະໃຫ້ຕົວເລືອກໃບຢັ້ງຢືນຂອງທ່ານ, ຂໍ້ຄວາມທີ່ ສຳ ຄັນທີ່ສຸດແມ່ນ ຊື່ສາມັນ ທີ່ຢູ່ (ເພີ່ມຊື່ໂດເມນທີ່ເປັນທາງການຢູ່ທີ່ນີ້) ແລະປ່ອຍໃຫ້ບໍລິສັດລະຫັດຜ່ານແລະຊ່ອງທາງເລືອກ. .

$ sudo chmod +x nginx_gen_ssl
$ sudo ./nginx_gen_ssl

ໃນຕອນທ້າຍຂອງກະແຈການສ້າງວຽກງານ, ລາຍຊື່ທີ່ມີທັງ ໝົດ ທີ່ມີຢູ່ພາຍໃຕ້ໄດເລກະທໍລີ Nginx ssl ຈະຖືກສະແດງ.

ນອກຈາກນີ້ຖ້າທ່ານຕ້ອງການໃຫ້ສະຄິບນີ້ຖືກ ນຳ ໃຊ້ເປັນ ຄຳ ສັ່ງຂອງລະບົບ, ໃຫ້ ສຳ ເນົາຫຼືຍ້າຍໄປທີ່ /usr/local/bin/.

$ sudo mv nginx_gen_ssl  /usr/local/bin

11. ຫຼັງຈາກທີ່ພວກເຮົາໄດ້ສ້າງຄີທີ່ ຈຳ ເປັນ ສຳ ລັບ Nginx SSL Virtual Host ເວລາທີ່ຈະສ້າງເອກະສານການຕັ້ງຄ່າ SSL Virtual Host. ໃຊ້ທີ່ຢູ່ IP ລະບົບດຽວກັນ ສຳ ລັບ Virtual Host ຄືກັບຢູ່ຂ້າງເທິງໃນ ຄຳ ສັ່ງ server_name ແຕ່ປ່ຽນຊື່ແຟ້ມ Virtual Host ເລັກ ໜ້ອຍ ໂດຍການກົດໃສ່ ssl ກ່ອນ .conf , ເພື່ອເຕືອນທ່ານວ່າເອກະສານນີ້ ຫຍໍ້ມາຈາກ name-ip SSL Virtual Virtual.

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

ໃນການປ່ຽນເອກະສານນີ້ ຟັງ ທີ່ຢູ່ port 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. ຫຼັງຈາກທີ່ file ໄດ້ຖືກສ້າງຂື້ນມາແລ້ວໃຫ້ໃຊ້ອັກສອນ n2ensite ຫຼືເສັ້ນ ຄຳ ສັ່ງ ln ເພື່ອເປີດໃຊ້ມັນ (ສ້າງການເຊື່ອມໂຍງທີ່ມີສັນຍາລັກຂອງເອກະສານໃນ ສະຖານທີ່ທີ່ເປີດໃຊ້ ), ຫຼັງຈາກນັ້ນເລີ່ມໃຊ້ Dain 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. ແນະ ນຳ ຕົວທ່ອງເວັບຂອງທ່ານໄປທີ່ Arch IP URL ແຕ່ວ່າເທື່ອນີ້ໂດຍໃຊ້ HTTPS protocol - https://192.168.1.33 ໃນລະບົບຂອງຂ້ອຍ - ແລະ ການເຊື່ອມຕໍ່ທີ່ບໍ່ໄວ້ວາງໃຈ ຂໍ້ຜິດພາດດ້ານຄວາມປອດໄພຄວນຈະປາກົດ ( ເພີ່ມແລະຢືນຢັນການຍົກເວັ້ນຄວາມປອດໄພ ເພື່ອໄປຕໍ່ ໜ້າ ຕໍ່ໄປ).

ໃນຂະນະທີ່ທ່ານສາມາດເຫັນເຈົ້າພາບ Nginx Virtual Host ຂອງທ່ານໃຫ້ບໍລິການເນື້ອຫາຄືກັນກັບ ຊື່-ip ທີ່ຜ່ານມາແຕ່ເວລານີ້ໃຊ້ການເຊື່ອມຕໍ່ທີ່ປອດໄພ HTTP.

ຂັ້ນຕອນທີ 3: ເຂົ້າເຖິງ PhpMyAdmin ຜ່ານ Virtual Host

ຖ້າ Virtual Host ຖືກເປີດໃຊ້ໃນ Nginx, ພວກເຮົາບໍ່ສາມາດເຂົ້າເຖິງເນື້ອຫາເສັ້ນທາງຂອງ http:// localhost ອີກຕໍ່ໄປ (localhost ມັກຈະໃຊ້ເນື້ອຫາໂດຍໃຊ້ loopback IP address ຫລືລະບົບ IP address ຖ້າບໍ່ໄດ້ຖືກ ກຳ ນົດຢ່າງອື່ນ) ເພາະວ່າພວກເຮົາມີ ໃຊ້ລະບົບ Arch ຂອງ IP ເປັນ server_name ສະນັ້ນເສັ້ນທາງເນື້ອຫາຂອງພວກເຮົາໄດ້ປ່ຽນໄປແລ້ວ.

14. ວິທີທີ່ງ່າຍທີ່ສຸດໃນການເຂົ້າເຖິງ PhpMyAdmin ຜ່ານທາງເວັບແມ່ນການສ້າງສັນຍາລັກເຊື່ອມຕໍ່ລະຫວ່າງ /usr/share/webapps/phpMyAdmin/ ແລະເສັ້ນທາງ Virtual Host ທີ່ໄດ້ ກຳ ນົດ ໃໝ່ ຂອງພວກເຮົາ. (/srv/http ).

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

15. ຫຼັງຈາກທີ່ທ່ານໄດ້ປະຕິບັດ ຄຳ ສັ່ງຂ້າງເທິງ, ໃຫ້ທ່ານໂຫຼດ ໜ້າ ເວັບ ໃໝ່ ແລະທ່ານຈະເຫັນ phpMyAdmin ໂຟນເດີ ໃໝ່, ຖ້າ ຄຳ ສັ່ງ autoindex ຖືກເປີດໃຊ້ໃນ Nginx Virtual Host ຫຼືຊີ້ URL ຂອງທ່ານໂດຍກົງໃສ່ໂຟນເດີ phpMyAdmin https:/arch_IP/phpMyAdmin .

16. ຖ້າທ່ານຕ້ອງການສຸຂະອະນາໄມ phpMyAdmin ກ່ຽວກັບ browser ແກ້ໄຂໄຟລ໌ Virtual Hosts ຂອງທ່ານແລະເພີ່ມເນື້ອຫາຕໍ່ໄປນີ້ຢູ່ພາຍໃຕ້ block server.

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

ຂັ້ນຕອນທີ 4: ເປີດໃຊ້ໄດເລກະທໍລີປ້ອງກັນລະຫັດຜ່ານໃນ Nginx

ບໍ່ຄືກັບ Apache, Nginx ໃຊ້ໂມດູນ HttpAuthBasic ເພື່ອໃຫ້ ໄດເລກະທໍລີປ້ອງກັນລະຫັດຜ່ານ ແຕ່ບໍ່ມີເຄື່ອງມືໃດໆໃນການສ້າງເອກະສານ .htpasswd ທີ່ຖືກເຂົ້າລະຫັດ.

17. ເພື່ອບັນລຸການປ້ອງກັນລະຫັດຜ່ານຂອງລະບົບກັບ Nginx ໃນ Arch Linux ຕິດຕັ້ງເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Apache ແລະໃຊ້ເຄື່ອງມືຂອງມັນເພື່ອຜະລິດເອກະສານ .htaccess ທີ່ຖືກເຂົ້າລະຫັດ.

$ sudo pacman -S apache

18. ຫຼັງຈາກທີ່ທ່ານໄດ້ຕິດຕັ້ງ Apache ແລ້ວຈະສ້າງໄດເລກະທໍລີ ໃໝ່ ພາຍໃຕ້ /etc/nginx/ ທີ່ຕັ້ງຊື່ passwd ໂດຍເຈດຕະນາທີ່ເອກະສານ .htpasswd ຈະຖືກເກັບໄວ້ແລະໃຊ້ htpasswd > ສັ່ງກັບ c ປ່ຽນໃສ່ຜູ້ໃຊ້ທີ່ເພີ່ມເຂົ້າ ທຳ ອິດເພື່ອຜະລິດເອກະສານ, ຖ້າທ່ານຕ້ອງການເພີ່ມຜູ້ໃຊ້ເພີ່ມເຕີມໃຫ້ໃຊ້ htpasswd ໂດຍບໍ່ຕ້ອງປ່ຽນ c .

$ 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. ເພື່ອປົກປ້ອງ ຊື່-ip-ssl ຮາກທີ່ເປັນເຈົ້າພາບ Virtual Virtual /srv/http/ ພ້ອມດ້ວຍແຟ້ມຍ່ອຍແລະໄຟລ໌ທັງ ໝົດ ທີ່ຢູ່ລຸ່ມມັນເພີ່ມ ຄຳ ແນະ ນຳ ຕໍ່ໄປນີ້ພາຍໃນຂອງທ່ານ ບລັອກເຊີຟເວີໂຮດຕິ້ງ Virtual ພາຍໃຕ້ ຄຳ ສັ່ງຮາກແລະຊີ້ໄປທີ່ເສັ້ນທາງແຟ້ມ .htpasswd .

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

20. ຫຼັງຈາກທີ່ທ່ານເລີ່ມການບໍລິການ Nginx ແລ້ວ, ໜ້າ ໂຫຼດ ໜ້າ ຈໍຄືນແລະ ໜ້າ ທີ່ ຕ້ອງການການກວດສອບຄວາມຖືກຕ້ອງ ຄວນປະກົດວ່າມີຄວາມຕ້ອງການຄວາມ ໜ້າ ເຊື່ອຖືຂອງທ່ານ.

ດຽວນີ້ທ່ານໄດ້ເປີດໃຊ້ Nginx ລະບົບປ້ອງກັນລະຫັດຜ່ານລະຫັດຜ່ານ ແຕ່ຕ້ອງຮູ້ວ່າເວລາດຽວກັນທີ່ server server ຢູ່ໃນລະບົບຂອງທ່ານຖືກຕິດຕັ້ງຢູ່ໃນລະບົບຂອງທ່ານ, ສະນັ້ນໃຫ້ແນ່ໃຈວ່າມັນຢູ່ໃນຄວາມພິການແລະໂດຍວິທີໃດກໍ່ບໍ່ໄດ້ເລີ່ມຕົ້ນເພາະມັນສາມາດ ນຳ ໄປສູ່ ທ່າເຮືອທີ່ຂັດແຍ້ງກັບ Nginx.

ຂັ້ນຕອນທີ 5: ປ່ຽນເສັ້ນທາງ HTTP ໄປທີ່ HTTPS ໃນ Nginx

21. ຖ້າທ່ານຕ້ອງການໃຫ້ໂປຣແກຣມທ່ອງເວັບປ່ຽນເສັ້ນທາງການຮ້ອງຂໍ HTTP ທີ່ບໍ່ປອດໄພໂດຍອັດຕະໂນມັດໄປທີ່ໂປແກຼມ HTTPS ເປີດແລະດັດແກ້ທ່ານ ບໍ່ແມ່ນ ssl ທີ່ຢູ່ Virtual Host ແລະເພີ່ມ ຄຳ ແນະ ນຳ ຕໍ່ໄປນີ້ພາຍໃຕ້ server_name directive .

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

ການຕັ້ງຄ່າທັງ ໝົດ ທີ່ ນຳ ສະ ເໜີ ໃນບົດຄວາມນີ້ທີ່ເຮັດຢູ່ພາຍໃຕ້ລະບົບ Arch Linux ທີ່ເຮັດ ໜ້າ ທີ່ເປັນ server, ແຕ່ສ່ວນໃຫຍ່ຂອງມັນ, ໂດຍສະເພາະກ່ຽວກັບເອກະສານການຕັ້ງຄ່າ Nginx ແມ່ນມີຢູ່ໃນລະບົບ Linux ສ່ວນໃຫຍ່ທີ່ມີຄວາມແຕກຕ່າງເລັກນ້ອຍ.