ວິທີການຕິດຕັ້ງ Nginx ດ້ວຍ Virtual Hosts ແລະໃບຢັ້ງຢືນ SSL


Nginx (ສັ້ນ ສຳ ລັບ Engine-x) ແມ່ນໂປແກຼມທີ່ບໍ່ເສຍຄ່າ, ເປີດ, ມີປະສິດທິພາບ, ມີປະສິດຕິພາບສູງແລະສາມາດປັບແຕ່ງ HTTP ແລະເຊີຟເວີຕົວແທນໄດ້, ເຄື່ອງອີເມວ TCP/UDP ມາດຕະຖານ. ມັນງ່າຍທີ່ຈະໃຊ້ແລະຕັ້ງຄ່າ, ມີພາສາການຕັ້ງຄ່າງ່າຍດາຍ. Nginx ປະຈຸບັນແມ່ນຊອບແວຂອງເວັບເຊີເວີ້ທີ່ ເໝາະ ສົມ ສຳ ລັບໃຫ້ ກຳ ລັງໃຊ້ເວບໄຊທ໌ທີ່ມີການໂຫຼດຫຼາຍ, ເນື່ອງຈາກມີຂະ ໜາດ ແລະປະສິດທິພາບຂອງມັນ.

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

ວິທີຕິດຕັ້ງ Nginx Web Server

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

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

ໃນຈຸດນີ້, ເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Nginx ຄວນຈະຂຶ້ນແລະແລ່ນ, ທ່ານສາມາດກວດສອບສະຖານະພາບດ້ວຍຄໍາສັ່ງ netstat.

$ sudo netstat -tlpn | grep nginx

ຖ້າລະບົບຂອງທ່ານມີໄຟວໍທີ່ເປີດໃຊ້ງານ, ທ່ານຕ້ອງເປີດພອດ 80 ແລະ 443 ເພື່ອອະນຸຍາດໃຫ້ມີການຈາລະຈອນ HTTP ແລະ HTTPS ຕາມ ລຳ ດັບ, ຜ່ານມັນ, ໂດຍການເຮັດວຽກ.

------------ 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 

ວິທີການທີ່ ເໝາະ ສົມ ສຳ ລັບການທົດສອບການຕິດຕັ້ງ Nginx ແລະກວດເບິ່ງວ່າມັນ ກຳ ລັງໃຊ້ງານແລະສາມາດໃຊ້ບໍລິການເວບໄຊທ໌ໄດ້ໂດຍການເປີດເວັບບຼາວເຊີແລະຊີ້ໄປທີ່ IP ຂອງ server.

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

ການຕິດຕັ້ງທີ່ເຮັດວຽກຄວນໄດ້ຮັບການຊີ້ບອກໂດຍ ໜ້າ ຈໍຕໍ່ໄປນີ້.

ວິທີການຕັ້ງຄ່າ Nginx Web Server

ແຟ້ມການຕັ້ງຄ່າຂອງ Nginx ແມ່ນຕັ້ງຢູ່ໃນໄດເລກະທໍລີ /etc/nginx ແລະເອກະສານການຕັ້ງຄ່າທົ່ວໂລກຕັ້ງຢູ່ /etc/nginx/nginx.conf ທັງ CentOS ແລະ Ubuntu.

Nginx ຖືກສ້າງຂື້ນຈາກໂມດູນທີ່ຄວບຄຸມໂດຍຕົວເລືອກການຕັ້ງຄ່າຕ່າງໆ, ເຊິ່ງເອີ້ນວ່າທິດທາງ. ຄຳ ສັ່ງແນະ ນຳ ສາມາດເປັນແບບງ່າຍດາຍ (ໃນຊື່ຮູບແບບແລະຄ່າທີ່ສິ້ນສຸດດ້ວຍລະຫັດ ; ) ຫຼືຕັນ (ມີ ຄຳ ແນະ ນຳ ເພີ່ມເຕີມໃສ່ໂດຍໃຊ້ {} ). ແລະ ຄຳ ສັ່ງຫ້າມທີ່ບັນຈຸທິດທາງອື່ນໆແມ່ນເອີ້ນວ່າສະພາບການ.

ທິດທາງທັງ ໝົດ ແມ່ນໄດ້ອະທິບາຍຢ່າງລະອຽດໃນເອກະສານ Nginx ໃນເວບໄຊທ໌ຂອງໂຄງການ. ທ່ານສາມາດອ້າງອີງໃສ່ຂໍ້ມູນເພີ່ມເຕີມ.

ໃນລະດັບພື້ນຖານ, Nginx ສາມາດຖືກ ນຳ ໃຊ້ເພື່ອຮັບໃຊ້ເນື້ອຫາທີ່ສະຖິດເຊັ່ນ: ເອກະສານ HTML ແລະເອກະສານສື່ມວນຊົນ, ໃນຮູບແບບແບບ standalone, ເຊິ່ງມີພຽງແຕ່ໃຊ້ block server ແບບ ທຳ ມະດາເທົ່ານັ້ນ (ປຽບທຽບກັບ Apache ບ່ອນທີ່ບໍ່ມີການ ກຳ ນົດຄ່າ virtual host).

ພວກເຮົາຈະເລີ່ມຕົ້ນໂດຍການອະທິບາຍໂດຍຫຍໍ້ກ່ຽວກັບໂຄງສ້າງການຕັ້ງຄ່າໃນເອກະສານການຕັ້ງຄ່າຕົ້ນຕໍ.

 
$ 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 block ຂ້າງເທິງມີ ຄຳ ສັ່ງລວມທີ່ບອກ 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;
}

ໃຫ້ສັງເກດວ່າໃນ Ubuntu, ທ່ານຍັງຈະຊອກຫາ ຄຳ ສັ່ງເພີ່ມເຕີມທີ່ປະກອບມີ ຄຳ ສັ່ງ (ລວມ/etc/nginx/sites-enabled/*;), ບ່ອນທີ່ໄດເລກະທໍລີ/etc/nginx/sites-enable/stores symlinks ກັບໄຟລ໌ການຕັ້ງຄ່າເວັບໄຊທ໌ທີ່ຖືກສ້າງຂື້ນໃນ/etc/nginx/sites-available /, ເພື່ອເປີດໃຊ້ເວັບໄຊຕ່າງໆ. ແລະການລຶບເອກະສານເຊື່ອມໂຍງຈະເຮັດໃຫ້ເວັບໄຊທ໌ນັ້ນເສີຍຫາຍໄປ.

ອີງຕາມແຫຼ່ງຕິດຕັ້ງຂອງທ່ານ, ທ່ານຈະພົບກັບໄຟລ໌ການຕັ້ງຄ່າເວບໄຊທ໌ເລີ່ມຕົ້ນທີ່ /etc/nginx/conf.d/default.conf (ຖ້າທ່ານຕິດຕັ້ງຈາກບ່ອນເກັບຂໍ້ມູນ NGINX ຢ່າງເປັນທາງການແລະ EPEL) ຫຼື/etc/nginx/sites-enabled/default (ຖ້າທ່ານຕິດຕັ້ງຈາກຫໍໄຕ Ubuntu).

ນີ້ແມ່ນຕົວຢ່າງຂອງເຄື່ອງແມ່ຂ່າຍ nginx ຕົວຢ່າງຂອງພວກເຮົາຕັ້ງຢູ່ /etc/nginx/conf.d/default.conf ໃນລະບົບທົດສອບ.

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 ຈະຮັບໃຊ້ ໜ້າ ເວັບແລະເອກະສານອື່ນໆ.
  • ດັດສະນີ: ລະບຸປະເພດຂອງເອກະສານດັດສະນີທີ່ຕ້ອງໄດ້ຮັບໃຊ້.
  • ສະຖານທີ່: ໃຊ້ໃນການປະມວນຜົນການຮ້ອງຂໍ ສຳ ລັບເອກະສານສະເພາະແລະແຟ້ມເອກະສານ.

ຈາກໂປຣແກຣມທ່ອງເວັບ, ເມື່ອທ່ານຊີ້ໄປທີ່ server ໂດຍໃຊ້ hostname localhost ຫລືທີ່ຢູ່ IP ຂອງມັນ, ມັນ ດຳ ເນີນການ ຄຳ ຮ້ອງຂໍແລະໃຫ້ບໍລິການແຟ້ມເອກະສານ /var/www/html/index.html, ແລະເກັບຮັກສາເຫດການໄວ້ໃນບັນທຶກການເຂົ້າເຖິງຂອງມັນ (/ var/log/nginx/access.log) ດ້ວຍ ຄຳ ຕອບ 200 (OK). ໃນກໍລະນີທີ່ມີຂໍ້ຜິດພາດ (ເຫດການທີ່ລົ້ມເຫລວ), ມັນຈະບັນທຶກຂໍ້ຄວາມຢູ່ໃນບັນທຶກຂໍ້ມູນຜິດພາດ (/var/log/nginx/error.log).

ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບການຕັດໄມ້ຢູ່ Nginx, ທ່ານອາດຈະອ້າງເຖິງວິທີການ ກຳ ຫນົດຄ່າແບບຟອມການເຂົ້າເຖິງແບບ ກຳ ນົດເອງຫຼືແບບຜິດພາດໃນ log in Nginx.

ແທນທີ່ຈະໃຊ້ແຟ້ມບັນທຶກການຕັ້ງຄ່າເລີ່ມຕົ້ນ, ທ່ານສາມາດ ກຳ ນົດແຟ້ມບັນທຶກທີ່ ກຳ ນົດເອງ ສຳ ລັບເວບໄຊທ໌ທີ່ແຕກຕ່າງກັນ, ດັ່ງທີ່ພວກເຮົາຈະເບິ່ງໃນພາຍຫລັງ, ພາຍໃຕ້ຫົວຂໍ້“ ການຕັ້ງຄ່າໂຮດຕິ້ງຕາມຊື່ (ທ່ອນຂອງເຄື່ອງແມ່ຂ່າຍ)”.

ເພື່ອ ຈຳ ກັດການເຂົ້າເຖິງເວັບໄຊທ໌/ແອັບພລິເຄຊັນຂອງທ່ານຫຼືບາງສ່ວນຂອງມັນ, ທ່ານສາມາດຕັ້ງຄ່າການກວດສອບ HTTP ຂັ້ນພື້ນຖານ. ສິ່ງນີ້ສາມາດ ນຳ ໃຊ້ໄດ້ຢ່າງ ຈຳ ເປັນເພື່ອ ຈຳ ກັດການເຂົ້າເຖິງເຊີຟເວີ HTTP ທັງ ໝົດ, ບລັອກເຊີຟເວີສ່ວນບຸກຄົນຫຼືສະຖານທີ່ຕັ້ງ.

ເລີ່ມຕົ້ນໂດຍການສ້າງເອກະສານທີ່ຈະເກັບຂໍ້ມູນການເຂົ້າເຖິງຂອງທ່ານ (ຊື່ຜູ້ໃຊ້/ລະຫັດຜ່ານ) ໂດຍການໃຊ້ htpasswd utility.

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

ເປັນຕົວຢ່າງ, ໃຫ້ທ່ານເພີ່ມຜູ້ເບິ່ງແຍງຜູ້ໃຊ້ເຂົ້າໃນບັນຊີນີ້ (ທ່ານສາມາດເພີ່ມຜູ້ໃຊ້ໃຫ້ຫຼາຍເທົ່າທີ່ເປັນໄປໄດ້), ບ່ອນທີ່ຕົວເລືອກ -c ຖືກໃຊ້ເພື່ອລະບຸລະຫັດຜ່ານເອກະສານລະຫັດຜ່ານ, ແລະ -B ເພື່ອເຂົ້າລະຫັດລັບ. ເມື່ອທ່ານກົດ [Enter], ທ່ານຈະຖືກຮ້ອງຂໍໃຫ້ໃສ່ລະຫັດຜ່ານຂອງຜູ້ໃຊ້:

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

ຫຼັງຈາກນັ້ນ, ໃຫ້ອະນຸຍາດໃຫ້ ກຳ ນົດສິດແລະຄວາມເປັນເຈົ້າຂອງທີ່ ເໝາະ ສົມໃຫ້ກັບເອກະສານລະຫັດລັບ (ແທນຜູ້ໃຊ້ແລະ nginx ຂອງກຸ່ມດ້ວຍ www-data ໃນ Ubuntu).

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

ດັ່ງທີ່ພວກເຮົາໄດ້ກ່າວມາກ່ອນ ໜ້າ ນີ້, ທ່ານສາມາດ ຈຳ ກັດການເຂົ້າເຖິງເວັບໄຊທ໌້ຂອງທ່ານ, ເວບໄຊທ໌ດຽວ (ໃຊ້ block server ຂອງມັນ) ຫຼືໄດເລກະທໍລີຫລືເອກະສານສະເພາະ. ສອງທິດທາງທີ່ເປັນປະໂຫຍດສາມາດຖືກ ນຳ ໃຊ້ເພື່ອບັນລຸເປົ້າ ໝາຍ ດັ່ງນີ້:

  • auth_basic - ເປີດໃຊ້ຄວາມຖືກຕ້ອງຂອງຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານໂດຍໃຊ້ໂປແກຼມ“ HTTP Basic Authentication”.
  • auth_basic_user_file - ລະບຸເອກະສານຂອງໃບຮັບຮອງ.

ເປັນຕົວຢ່າງ, ພວກເຮົາຈະສະແດງວິທີການປົກປ້ອງລະຫັດຜ່ານ/var/www/html/protected.

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 

ຄັ້ງຕໍ່ໄປທີ່ທ່ານຊີ້ໂປແກຼມທ່ອງເວັບຂອງທ່ານໄປທີ່ໄດເລກະທໍລີຂ້າງເທິງ (http:// localhost/protected) ທ່ານຈະຖືກຮ້ອງຂໍໃຫ້ໃສ່ຂໍ້ມູນປະ ຈຳ ຕົວຂອງທ່ານ (ຊື່ຜູ້ໃຊ້ admin ແລະລະຫັດຜ່ານທີ່ທ່ານເລືອກ).

ການເຂົ້າສູ່ລະບົບສົບຜົນສໍາເລັດຊ່ວຍໃຫ້ທ່ານສາມາດເຂົ້າເຖິງເນື້ອໃນຂອງໄດເລກະທໍລີ, ຖ້າບໍ່ດັ່ງນັ້ນທ່ານຈະໄດ້ຮັບຂໍ້ຜິດພາດ“ 401 ທີ່ຕ້ອງການການອະນຸຍາດ”.

ວິທີການຕັ້ງຊື່ໂຮດຕິ້ງທີ່ມີຊື່ Virtual Server (Server Blocks) ໃນ Nginx

ສະພາບການຂອງເຊີຟເວີຊ່ວຍໃຫ້ຫລາຍໆໂດເມນ/ເວັບໄຊທ໌້ເກັບມ້ຽນຢູ່ໃນແລະບໍລິການຈາກເຄື່ອງຈັກທາງກາຍະພາບດຽວກັນຫລືເຄື່ອງແມ່ຂ່າຍເອກະຊົນແບບເສມືນ (VPS). ຫລາຍບລັອກເຊີຟເວີ (ເປັນຕົວແທນຂອງເຈົ້າພາບເສມືນ) ສາມາດປະກາດພາຍໃນສະພາບການຂອງ http ສຳ ລັບແຕ່ລະເວັບໄຊ/ໂດເມນ. Nginx ຕັດສິນໃຈວ່າເຊີຟເວີໃດປະມວນຜົນການຮ້ອງຂໍໂດຍອີງໃສ່ຫົວຂໍ້ ຄຳ ຮ້ອງຂໍທີ່ມັນໄດ້ຮັບ.

ພວກເຮົາຈະສະແດງແນວຄວາມຄິດນີ້ໂດຍໃຊ້ໂດເມນ dummy ຕໍ່ໄປນີ້, ແຕ່ລະບ່ອນຕັ້ງຢູ່ໃນໄດເລກະທໍລີທີ່ລະບຸໄວ້:

  • 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 

ຕອນນີ້, ສ້າງແຟ້ມ index.html ຕົວຢ່າງພາຍໃນແຕ່ລະຮວບຮວມ public_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.

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

ຕື່ມການປະກາດ block server ຕໍ່ໄປນີ້ໃນ file 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

ແລະການຊີ້ເຄື່ອງແມ່ຂ່າຍເວັບຂອງທ່ານໄປທີ່ຢູ່ຂ້າງເທິງນີ້ຄວນເຮັດໃຫ້ທ່ານເຫັນ ໜ້າ ຫລັກຂອງໂດເມນທີ່ບໍ່ຖືກຕ້ອງ.

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

ສິ່ງ ສຳ ຄັນ: ຖ້າທ່ານເປີດໃຊ້ SELinux, ການຕັ້ງຄ່າເລີ່ມຕົ້ນຂອງມັນຈະບໍ່ອະນຸຍາດໃຫ້ Nginx ເຂົ້າເຖິງແຟ້ມທີ່ຢູ່ນອກສະຖານທີ່ທີ່ໄດ້ຮັບອະນຸຍາດທີ່ມີຊື່ສຽງ (ເຊັ່ນ// etc/nginx ສຳ ລັບການຕັ້ງຄ່າ,/var/log/nginx ສຳ ລັບບັນທຶກ,/var/www/html ສຳ ລັບແຟ້ມເອກະສານແລະອື່ນໆ .. ).

ທ່ານສາມາດຈັດການກັບສິ່ງນີ້ໄດ້ໂດຍການປິດ SELinux, ຫຼືການຕັ້ງຄ່າສະພາບຄວາມປອດໄພທີ່ຖືກຕ້ອງ. ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ, ອ້າງອີງເຖິງ ຄຳ ແນະ ນຳ ນີ້: ການ ນຳ ໃຊ້ Nginx ແລະ Nginx Plus ກັບ SELinux ໃນເວັບໄຊທ໌ Nginx Plus.

ວິທີການຕິດຕັ້ງແລະການຕັ້ງຄ່າ SSL ກັບ Nginx

ໃບຢັ້ງຢືນ SSL ຊ່ວຍໃນການເຮັດໃຫ້ http (HTTPS) ປອດໄພໃນເວັບໄຊທ໌້ຂອງທ່ານ, ເຊິ່ງເປັນສິ່ງ ຈຳ ເປັນໃນການສ້າງການເຊື່ອມຕໍ່ທີ່ເຊື່ອຖືໄດ້/ປອດໄພລະຫວ່າງຜູ້ ນຳ ໃຊ້ກັບ server ຂອງທ່ານໂດຍການເຂົ້າລະຫັດຂໍ້ມູນທີ່ຖືກສົ່ງຕໍ່, ຈາກ, ຫຼືພາຍໃນເວັບໄຊທ໌ຂອງທ່ານ.

ພວກເຮົາຈະກວມເອົາວິທີການສ້າງແລະຕິດຕັ້ງໃບຢັ້ງຢືນທີ່ໄດ້ເຊັນດ້ວຍຕົນເອງ, ແລະສ້າງ ຄຳ ຮ້ອງຂໍເຊັນໃບຢັ້ງຢືນ (CSR) ເພື່ອຂໍໃບຢັ້ງຢືນ SSL ຈາກຜູ້ມີໃບຢັ້ງຢືນ (CA), ເພື່ອ ນຳ ໃຊ້ກັບ Nginx.

ໃບຢັ້ງຢືນທີ່ເຊັນດ້ວຍຕົນເອງແມ່ນສາມາດສ້າງໄດ້ໂດຍບໍ່ເສຍຄ່າແລະມີປະສິດຕິພາບດີທີ່ຈະໄປ ສຳ ລັບຈຸດປະສົງການທົດສອບແລະ ສຳ ລັບການບໍລິການພາຍໃນ LAN ເທົ່ານັ້ນ. ສຳ ລັບເຊີຟເວີທີ່ປະເຊີນ ໜ້າ ກັບສາທາລະນະ, ມັນໄດ້ຖືກແນະ ນຳ ໃຫ້ໃຊ້ໃບຢັ້ງຢືນທີ່ອອກໂດຍ CA (ຕົວຢ່າງ Let’s Encrypt) ເພື່ອຮັກສາຄວາມແທ້ຈິງຂອງມັນ.

ເພື່ອສ້າງໃບຢັ້ງຢືນທີ່ເຊັນດ້ວຍຕົນເອງ, ທຳ ອິດສ້າງໄດເລກະທໍລີທີ່ໃບຢັ້ງຢືນຂອງທ່ານຈະຖືກເກັບໄວ້.

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

ຫຼັງຈາກນັ້ນ, ສ້າງໃບຢັ້ງຢືນທີ່ໄດ້ລົງນາມດ້ວຍຕົນເອງແລະລະຫັດຫຼັກໂດຍໃຊ້ເຄື່ອງມືເປີດເສັ້ນ ຄຳ ສັ່ງ opensl.

$ 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.
  • ລະຫັດ (ບໍ່ມີ) - ໝາຍ ຄວາມວ່າ "ບໍ່ເຂົ້າລະຫັດລະຫັດ".
  • -days 365 - ລະບຸ ຈຳ ນວນມື້ທີ່ໃບຢັ້ງຢືນຈະຖືກຕ້ອງ ສຳ ລັບ.
  • -Nekeykey rsa: 2048 - ລະບຸວ່າຄີທີ່ຜະລິດໂດຍໃຊ້ RSA algorithm ຄວນຈະເປັນ 2048-bit.
  • -keyout /etc/nginx/ssl-certs/nginx.key - ລະບຸເສັ້ນທາງເຕັມຂອງປຸ່ມ RSA.
  • -out /etc/nginx/ssl-certs/nginx.crt - ລະບຸເສັ້ນທາງເຕັມຂອງໃບຢັ້ງຢືນ.

ຕໍ່ໄປ, ເປີດແຟ້ມການຕັ້ງຄ່າໂຮດຕິ້ງຂອງທ່ານແລະເພີ່ມສາຍຕໍ່ໄປນີ້ໃນການປະກາດເຊີຟເວີຟັງຢູ່ທີ່ port 443. ພວກເຮົາຈະທົດສອບກັບເອກະສານໂຮດຕິ້ງ virtual /etc/nginx/conf.d/wearelinux-console.net.conf.

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

ຫຼັງຈາກນັ້ນຕື່ມ ຄຳ ສັ່ງ ssl ເຂົ້າໃນໄຟລ໌ການຕັ້ງຄ່າ nginx, ມັນຄວນມີລັກສະນະຄ້າຍຄືກັບຂ້າງລຸ່ມນີ້.

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 ແລ້ວຊີ້ Browser ຂອງທ່ານໄປທີ່ທີ່ຢູ່ຕໍ່ໄປນີ້.

https://www.wearelinux-console.net

ຖ້າທ່ານຕ້ອງການຊື້ໃບຢັ້ງຢືນ SSL ຈາກ CA, ທ່ານ ຈຳ ເປັນຕ້ອງສ້າງ ຄຳ ຮ້ອງຂໍເຊັນໃບຢັ້ງຢືນ (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

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

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

ຖ້າທ່ານໄດ້ປະສົບກັບບັນຫາທີ່ລົ້ມເຫລວໃນລະຫວ່າງຂັ້ນຕອນການຕິດຕັ້ງ/ການຕັ້ງຄ່າ nginx ຂອງທ່ານຫຼືມີ ຄຳ ຖາມຫລື ຄຳ ເຫັນ, ໃຫ້ໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້ເພື່ອຕິດຕໍ່ຫາພວກເຮົາ.