ืืื ืงืขื ืืื ืงืึทื ืคืืืืขืจ OpenLiteSpeed โโโโืฆื ืคืึทืจืงืขืจื ืคืจืืงืกื ืฆื Nextcloud ืืืืฃ ืืืื ืื ืขืจืืขื ื ืขืฅ?
ืกืึทืคึผืจืืืืื ืืื, ืึท ืืืื ืืืืฃ Habrรฉ ืคึฟืึทืจ OpenLiteSpeed โโโโืืึธื ื ืื ืืขืื ืขืคึผืขืก! ืืื ืืึธืืขื ืืฉ ืฆื ืคืึทืจืจืืืื ืืขื ืืืืจืขืื, ืืืืึทื LSWS ืืื ืึท ืืืขืจื ืืืขื ืกืขืจืืืขืจ. ืืื ืืืืข ืขืก ืคึฟืึทืจ ืืืึทื ืืืืงืืึทื ืืื ืคืึทื ืืึทืืืข ืืืขื ืึทืืืื ืืกืืจืึทืฆืืข ืฆืืืื ื:
ืืจืึธืฅ ืืขื ืคืึทืงื ืึทื OpenLiteSpeed โโโโืืื ืืขืจืกื ืืึทืจืืื ืืื ืึท ืืืึธืจืืคึผืจืขืกืก "ืึทืงืกืขืืขืจืึทืืึธืจ," ืืื ืืืึทื ื ืก ืึทืจืืืงื ืืื ืืืขื ืืืืึทืื ืึท ืืึทื ืฅ ืกืคึผืขืฆืืคืืฉ ืึทืคึผืืึทืงืืืฉืึทื ืคืื ืขืก. ื ืืืืื, ืคืึทืจืงืขืจื ืคึผืจืึทืงืกืืื ื ืคืื ืจืืงืืืขืก. ืืืึธืื ืืืจ ืืึธืื ืึทื ืขืก ืืื ืืขืจ ืืขืืืืื ืืืขื ืฆื ื ืืฆื nginx ืคึฟืึทืจ ืืขื? ืืื ืืืขื ืฉืืืืขื. ืึธืืขืจ ืืืจ ืืึทืงืข ืืขืคืืื ืืื ืืืืข ืืื LSWS!
ืคึผืจืึธืงืกืืื ื ืืื, ืึธืืขืจ ืืื? ืึทื ืืืืึทื ืืืื ืืขืจืืขื ืืื ืกื ืืื Nextcloud. ืืืจ ื ืืฆื Nextcloud ืฆื ืฉืึทืคึฟื ืคึผืจืืืืึทื "ืืขืงืข-ืืึทื ืืืืืื ื ืืืืืงื ืก". ืคึฟืึทืจ ืืขืืขืจ ืงืืืขื ื, ืืืจ ืึทืืึทืงืืื ืึท ืืึทืืื ืืขืจ VM ืืื Nextcloud, ืืื ืืืจ ืืึธื ื ืืฉื ืืืขืื ืฆื ืืืกืฉืืขืื ืืื "ืึทืจืืืก". ืึทื ืฉืืึธื, ืืืจ ืคึผืจืึทืงืกื ืจืืงืืืขืก ืืืจื ืึท ืคึผืจืึธืกื ืคืึทืจืงืขืจื ืคึผืจืึทืงืกื. ืืขื ืืืืืื ื ืึทืืึทืื ืืืจ ืฆื:
1) ืึทืจืึธืคึผื ืขืืขื ืื ืกืขืจืืืขืจ ืืืืฃ ืืืึธืก ืืขืจ ืงืืืขื ื ืก ืืึทืื ืืขื ืขื ืกืืึธืจื ืคึฟืื ืืขืจ ืืื ืืขืจื ืขืฅ ืืื
2) ืจืึทืืขืืืขื IP ืึทืืจืขืกืขืก.
ืื ืืืึทืืจืึทืืข ืงืืงื ืืื ืืึธืก:
ืขืก ืืื ืงืืึธืจ ืึทื ืื ืืืึทืืจืึทืืข ืืื ืกืืืคึผืืึทืคืืื, ืืืืึทื ืึธืจืืึทื ืืืืื ื ืืืขื ืืึทืืื ืื ืืก ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ ืืื ื ืืฉื ืื ืืขืืข ืคืื โโืืืึทื ื ืก ืึทืจืืืงื.
ืืืื ืืื ืืขื ืึทืจืืืงื, ืืื ืืืขื ืคืึทืจืืึธืื ืื ืืึทื ืืึธื ืืืจืื ื ืืื ืืงืขืจืืืง ืงืึทื ืคืืืืขืจืืืฉืึทื ืคืื NextCloud, ืกืคึผืขืฆืืขื ืืื ื ืขืก ืืขื ืขื ืืึทืืขืจืืึทืืก ืืืืฃ ืืขื ืืขืืข ืืืืฃ Habrรฉ. ืึธืืขืจ ืืื ืืืขื ืืืฉืืืื ืืืืึทืื ืืืจ ืื ืกืขืืืื ืืก ืึธื ืืืึธืก Nextcloud ืืืขื ื ืืฉื ืึทืจืืขืื ืืื ืืขืจ ืึท ืคืจืืงืกื.
Given:
Nextcloud ืืื ืืื ืกืืึทืืืจื ืืืืฃ ืืึทืืขืืึธืก 1 ืืื ืงืึทื ืคืืืืขืจื ืฆื ืึทืจืืขืื ืืืจื ืืืืคึผ (ืึธื ืกืกื), ืืื ืืืืื ืึท ืืืืข ื ืขืฅ ืฆืืืื ื ืืื ืึท "ืืจืื" IP ืึทืืจืขืก 172.16.22.110.
ืืึธืืืจ ืงืึทื ืคืืืืขืจ OpenLiteSpeed โโโโืืืืฃ ืืึทืืขืืึธืก 2. ืขืก ืืื ืฆืืืื ืื ืืขืจืคืืืกืื, ืึท ืคืื ืืจืืืกื ืืืง ืืืื ืขืจ (ืืื ืื ืืื ืืขืจื ืขื) ืืื ืึทื ืื ืขืจืืขื ืืื ืึทื IP ืึทืืจืขืก ืืืืฃ ืื ื ืขืฅ 172.16.22.0/24
ืื ืื ืก ื ืึธืืขื cloud.connect.link ืคืืจื ืฆื ืื IP ืึทืืจืขืก ืคืื ืื ืคืื ืืจืืืกื ืืืง ืฆืืืื ื ืคืื ืืึทืืขืืึธืก 2
ืึทืจืืขื:
ืืึทืงืืืขื ืคืื ืื ืืื ืืขืจื ืขื ื ืืฆื ืื ืืื ืง '
- ืื ืกืืึธืืื ื OpenLiteSpeed โโโโืืืืฃ Ubuntu 18.04.2.
ืืึธืืืจ ืืืืื ืึท ืจืืคึผืึทืืึทืืึธืจื:
ืืื -ืึธ -
http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh |sudo bash
ืกืืืึธ ืคืืืืง-ืืึทืงืืืขื ืืขืจืืืึทื ืืืงื
ืื ืกืืึทืืืจื, ืืืืคื:
sudo apt-get install openlitespeed
sudo /usr/local/lsws/bin/lswsctrl ืึธื ืืืื
- ืืึธืืืจ ืฉืืขืื ืึท ืืื ืืืึทื ืคืืืจืืืึทื.
sudo ufw ืืึธืื ssh
sudo ufw ืคืขืืืงืืึทื ืืึธืื ืึทืืืืึธืืื ื
sudo ufw ืคืขืืืงืืึทื ืืืืงืขื ืขื ืื ืงืึทืืื ื
sudo ufw ืืขืจืืืืื http
sudo ufw ืืึธืื https
sudo ufw ืืึธืื ืคืื ืืืื ืคืึทืจืืืึทืืืื ื ืืึทืืขืืึธืก ืฆื ืงืืื ืคึผืึธืจื 7080
ืกืืืึธ ืืื ืืขืื - ืืึธืืืจ ืงืึทื ืคืืืืขืจ OpenLiteSpeed โโโโืืื ืึท ืคืึทืจืงืขืจื ืคึผืจืึทืงืกื.
ืืึธืืืจ ืฉืึทืคึฟื ืืืจืขืงืืขืจืื ืคึฟืึทืจ ืื ืืืืจืืืึทื ืืึธืกื.cd /usr/local/lsws/
sudo mkdirc cloud.connect.link
cd cloud.connect.link/
sudo mkdir {conf,html, ืืึธืืก}
sudo chown lsadm:lsadm ./conf/
ืืึธืืืจ ืงืึทื ืคืืืืขืจ ืื ืืืืจืืืึทืืืึธืกื ืคึฟืื ืื LSWS ืืืขื ืฆืืืื ื.
ืขืคื URL ืคืึทืจืืืึทืืืื ื
ืคืขืืืงืืึทื ืืึธืืื / ืคึผืึทืจืึธื: ืึทืืืื/123456
ืืืื ืึท ืืืืจืืืึทื ืืึทืืขืืึธืก (ืืืืจืืืึทื ืืึธืกืฅ> ืืืื).
ืืืขื ืึทืืื ื, ืึท ืืขืืช ืึธื ืืึธื ืืืขื ืืขืจืฉืืึทื ืขื ืืืึธืก ืื ืืืงืืืฅ ืึทื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืขืงืข ืืื ืคืขืื ืืืง. ืืึธืก ืืื ื ืึธืจืืึทื ืืื ืงืขื ืขื ืืืื ืจืืืึทืืืื ืืืจื ืืขืื ืึท ืงืืืง ืืจืืงื ืฆื ืฉืึทืคึฟื.
ืืื ืื ืึทืืืขืืืื ืข ืงืืืืื, ืกืคึผืขืฆืืคืืฆืืจื ืืึธืงืืืขื ื ืืืึธืจืฆื (ืืึธืืฉ ืขืก ืืื ื ืื ืืืจืฃ, ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืืขื ื ืืฉื ื ืขืืขื ืึทืืืขืง ืึธื ืขืก). ืคืขืื ื ืึธืืขื, ืืืื ื ืื ืกืคึผืขืกืืคืืขื, ืืืขื ืืืื ืืขื ืืืขื ืคืื ืื ืืืืจืืืึทื ืืึธืกื ื ืึธืืขื, ืืืึธืก ืืืจ ืืขืจืืคื ืื ื ืึธืืขื ืคืื ืืื ืืืขืจ ืคืขืื.
ืืืฆื ืขืก ืืื ืฆืืื ืฆื ืืขืืขื ืงืขื ืึทื ืืืจ ืืึธื ื ืื ื ืึธืจ ืืึธืื ืึท ืืืขื ืกืขืจืืืขืจ, ืึธืืขืจ ืึท ืคืึทืจืงืขืจื ืคึผืจืึทืงืกื. ืื ืคืืืืขื ืืข ืกืขืืืื ืืก ืืืขื ืืึธืื LSWS ืืืึธืก ืฆื ืคึผืจืึทืงืกื ืืื ืืื. ืืื ืื ืืืืจืืืึทื ืืึธืกื ืกืขืืืื ืืก, ืขืคึฟืขื ืขื ืื ืคืื ืืจืืืกื ืืืง ืึทืคึผ ืงืืืืื ืืื ืืืืื ืึท ื ืืึทืข ืึทืคึผืืึทืงืืืฉืึทื ืคืื ืื ืืืขื ืกืขืจืืืขืจ ืืืคึผ:
ืืืจ ืึธื ืืืืึทืื ืืขื ื ืึธืืขื ืืื ืึทืืจืขืก. ืืืจ ืงืขื ืขื ืกืคึผืขืฆืืคืืฆืืจื ืึท ืึทืจืืืืจืึทืจืืฉ ื ืึธืืขื, ืึธืืขืจ ืืืจ ืืึทืจืคึฟื ืฆื ืืขืืขื ืงืขื ืขืก; ืขืก ืืืขื ืืืื ื ืืฆืืง ืืื ืื ืืืืึทืืขืจ ืกืืขืคึผืก. ืื ืึทืืจืขืก ืืื ืืื Nextcloud ืืขืื ืืืืฃ ืื ืื ืขืจืืขื ื ืขืฅ:
ืืื ืืขืจ ืืขืืืืงืขืจ ืืืืจืืืึทืืืึธืกื ืกืขืืืื ืืก, ืขืคึฟืขื ืขื ืื ืงืึธื ืืขืงืกื ืงืืืืื ืืื ืฉืึทืคึฟื ืึท ื ืืึทืข ืงืึธื ืืขืงืกื ืคืื ืื ืคึผืจืึธืงืกื ืืืคึผ:
ืกืคึผืขืฆืืคืืฆืืจื ืื ืคึผืึทืจืึทืืขืืขืจืก: URI = /, ืืืขื ืกืขืจืืืขืจ = nextcloud_1 (ื ืึธืืขื ืคืื ืื ืคืจืืขืจืืืงืข ืฉืจืื)
ืจืืกืืึทืจื LSWS. ืืึธืก ืืื ืืขืืื ืืื ืืืื ืืื ืคืื ืื ืืืขื ืฆืืืื ื, ืืืจืึทืงืึทืื! (ืืขืจ ืืขืจืืฉืขืืืง ืืืื-ืืจืขืืขืจ ืืื ืืืจ ืจืขืื)
- ืืืจ ืื ืกืืึทืืืจื ืื ืืึทืืืืึทืื ืืื ืงืึทื ืคืืืืขืจ https.
ืคึผืจืึธืฆืขืืืจ ืคึฟืึทืจ ืงืจืืื ืึท ืืึทืืืืึทืื ืืืจ ืืืขืื ืคืึทืจืืึธืื ืขืก ืืื ืฉืืืืขื ืึทื ืืืจ ืฉืืื ืืึธืื ืขืก ืืื ืขืก ืืืื ืฆืืืืืขื ืืื ืื ืฉืืืกื ืืื ืื /etc/letsencrypt/live/cloud.connect.link ืืืขืืืืืึทืืขืจ.
ืืึธืืืจ ืืึทืื ืึท "ืฆืืืขืจืขืจ" (ืืืกื ืขืจ> ืืืื), ืจืืคื ืขืก "ืืืืคึผืก". ืืื ืก ืคืื ื ืขืก ืฆื ืคึผืึธืจื 443 ืืื ืืึธื ืึทื ืขืก ืืืขื ืืืื ืืืืขืจ:
ืืื ืื SSL ืงืืืืื, ืึธื ืืืืึทืื ืืขื ืืจื ืฆื ืื ืฉืืืกื ืืื ืืึทืืืืึทืื:
ืืขืจ "ืฆืืืขืจืขืจ" ืืื ืืืฉืืคื, ืืืฆื ืืื ืื ืืืืจืืืึทื ืืึธืกื ืืึทืคึผืื ืืก ืึธืคึผืืืืืื ื ืืืจ ืืืขื ืืืืื ืืื ืืืขืจ ืืืืจืืืึทื ืืึทืืขืืึธืก ืฆื ืขืก:
ืืืื LSWS ืืืขื ืคืจืืงืกื ืืืืื ืฆื ืืืื ืืื ืกื, ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืงืขื ืขื ืืืื ืืขืขื ืืืงื. ืึธืืขืจ ืืืจ ืคึผืืึทื ืฆื ื ืืฆื ืขืก ืฆื ืคืึธืจื ืจืืงืืืขืก ืฆื ืคืึทืจืฉืืืขื ืข "ืึทืืืขืจืึทืืื" ืืืคึผืขื ืืื ื ืืืืฃ ืื ืคืขืื ื ืึธืืขื. ืืื ืึทืืข ืืึธืืืืื ื ืืืขื ืืึธืื ืืืืขืจ ืืืืืขื ืข ืกืขืจืืืคืืงืึทืฅ. ืืขืจืืืขืจ, ืืืจ ืืึทืจืคึฟื ืฆื ืืืื ืฆื ืื ืืืืจืืืึทืืืึธืกื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืื ืืืืืขืจ ืกืคึผืขืฆืืคืืฆืืจื ืืืึทื ืฉืืืกื ืืื ืืึทืืืืึทืื ืืื ืื ืกืกื ืงืืืืื. ืืื ืืขืจ ืฆืืงืื ืคึฟื, ืืึธืก ืืึธื ืืืื ืืขืืื ืคึฟืึทืจ ืืขืืขืจ ื ืืึท ืืืืจืืืึทื ืืึทืืขืืึธืก.
ืึทืืข ืืืึธืก ืืืืืื ืืื ืฆื ืงืึทื ืคืืืืขืจ URL ืจืืจืืืืื ื ืึทืืื ืึทื http ืจืืงืืืขืก ืืขื ืขื ืึทืืจืขืกื ืฆื https.
(ืืื, ืืืขื ืืืขื ืืึธืก ืกืืฃ? ืขืก ืืื ืฆืืื ืคึฟืึทืจ ืืจืึทืืืขืจื ืืื ืื ืืขืจืข ืืืืืืืืืจื ืฆื ืืึทืฉืืืืขื ืฆื ืืืืคึผืก ืืืจื ืคืขืืืงืืึทื, ืืื ืคืึธืจืืืก ืฆื ืงืืื-SSL ืืึทื ืืืึทืื ืืืื ื ืืืืืง).
ืงืขืจ ืืืืฃ ืืขืื ืจืืจืืื ืืื ืฉืจืืึทืื ืื ืจืืจืืื ืึผืืืื:
ืจืืจืืื ืงืึธื ื %{SERVER_PORT} 80
ืจืืจืืืืจืื ^(.*)$https://%{SERVER_NAME}%{REQUEST_URI } [ืจ=301,ื]
ืจืขืื ืฆื ืึท ืืึธืื ืข ืืืกืึทื ืืขืจืกืืึทื ืืื ื, ืืืจ ืงืขื ืขื ื ืืฉื ืฆืืืืืื ืจืืจืืื ืึผืืืื ืืื ืื ืืขืืืืื ืืืขื ืืจืึทืกืขืคืื ืจืืกืืึทืจื. ืืขืจืืืขืจ, ืืึธืื ืืื ืื ืจืืกืืึทืจื LSWS ื ืื ืืจืึทืฆืืขื, ืึธืืขืจ ืืขืขืจืขื ืืื ืืคืขืงืืืืืื:
sudo systemctl ืจืืกืืึทืจื lsws.service
ืึผืื ืืขืจ ืกืขืจืืืขืจ ืืึธื ืืขืจื ืฆื ืคึผืึธืจื 80, ืืืจ ืืืขืื ืฉืึทืคึฟื ืื ืื ืืขืจ ืืืกื ืขืจ. ืืึธืืืจ ืจืืคื ืขืก http, ืึธื ืืืืึทืื ืื 80 ืคึผืึธืจื ืืื ืื ืคืึทืงื ืึทื ืขืก ืืืขื ืืืื ื ืื-ืืืืขืจ:
ืืืจื ืึทื ืึทืืึทืืืฉื ืืื ืืึทืฉืืขืืืงื ืึท https ืืืกื ืขืจ, ืืึธืื ืืื ืื ืืึทืคึผืข ืืื ืืืขืจ ืืืืจืืืึทื ืืึทืืขืืึธืก ืฆื ืขืก.
ืืืฆื LSWS ืืืขื ืืขืจื ืฆื ืคึผืึธืจื 80 ืืื ืฉืืงื ืจืืงืืืขืก ืคืื ืขืก ืฆื 443, ืจืืจืืืืื ื ืื URL.
ืฆืื ืกืืฃ, ืืื ืจืขืงืึธืืขื ืืืจื ืืึธืืขืจืื ื ืื LSWS ืืึธืืื ื ืืืจืื, ืืืึธืก ืืื ืืึทืฉืืืื ืฆื ืืขืืื ืืืจื ืคืขืืืงืืึทื. ืืื ืืขื ืืึธืืข, ืืึธืืก ืืขืจื ืืื ืืืืฅ ืืืืงืืึทื! ืคึฟืึทืจ ืจืืึฟ ืงืึทืกืขืก, ืื ืืืืจืขื ืื ื ืืืจืื ืืื ืืขื ืื. ืืืื ืฆื ืกืขืจืืืืจืขืจ ืงืึทื ืคืืืืขืจืืืฉืึทื> ืงืืึธืฅ:
ืืึธืก ืงืึทืืคึผืืืฅ ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืคืื OpenLiteSpeed โโโโืืื ืึท ืคืึทืจืงืขืจื ืคึผืจืึทืงืกื. ืึทืืึธื ืืืืืขืจ ืืืจ ืจืืกืืึทืจื LSWS, ื ืึธืืืืื ืื ืืื ืง
ืืื ืกืืจ ืคึฟืึทืจ Nextcloud ืฆื ืืึธืื ืืื ืื ืืื, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืื ืื ืคืขืื cloud.connect.link ืฆื ืืขืจ ืจืฉืืื ืคืื ืืจืึทืกืืื ืึธื ืขืก. ืืื ืก ืืืื ืจืขืืึทืืืจื config.php. ืืื ืื ืกืืึทืืืจื Nextcloud ืืืืืึธืืึทืืืฉ ืืืขื ืื ืกืืึธืืื ื ืืืื ืื ืืื ืื ืงืึธื ืคืื ืืื ืืืื ืืึธ: /var/snap/nextcloud/current/nextcloud/config.
ืืืื ืื 'cloud.connect.link' ืคึผืึทืจืึทืืขืืขืจ ืฆื ืื ืืจืึทืกืืขื_ืืึธืืึทืื ืก ืฉืืืกื:
'trusted_domains' =>
ืืขื ืืข (
0 => '172.16.22.110',
1 => 'cloud.connect.link',
),
ืืขืจื ืึธื, ืืื ืืขืจ ืืขืืืืงืขืจ ืงืึทื ืคืืืืขืจืืืฉืึทื ืืืจ ืืึทืจืคึฟื ืฆื ืกืคึผืขืฆืืคืืฆืืจื ืื IP ืึทืืจืขืก ืคืื ืืื ืืืขืจ ืคืจืืงืกื. ืืืืข ืืึธื ืึทื ืื ืึทืืจืขืก ืืืื ืืืื ืกืคึผืขืกืืคืืขื ืืื ืืืื ืขืจ ืืืึธืก ืืื ืงืขื ืืืง ืฆื ืื Nextcloud ืกืขืจืืืขืจ, ื.ืข. LSWS ืืืืข ืฆืืืื ื IP. ืึธื ืืขื ืฉืจืื, ืื Nextcloud ืืืขื ืฆืืืื ื ืึทืจืืขื, ืึธืืขืจ ืึทืคึผืืึทืงืืืฉืึทื ื ืืขื ืขื ื ืืฉื ืึธืืขืจืืืื.
'trusted_proxies' =>
ืืขื ืืข (
0 => '172.16.22.100',
),
ืืจืืืก, ื ืึธื ืืขื ืืืจ ืงืขื ืขื ืืึทืงืืืขื ืฆื ืื ืืขืจืืืืืขื ืืฉ ืฆืืืื ื:
ืคึผืจืึธืืืขื ืกืึทืืืื! ืืืฆื ืืขืืขืจ ืงืืืขื ื ืงืขื ืขื ืืขืฉืึธืืขื ื ืืฆื ืื "ืืขืงืข ืืืึธืืงื" ื ืืฆื ืืืืขืจ ืคืขืจืืขื ืืขืืข URL, ืืขืจ ืกืขืจืืืขืจ ืืื ืื ืืขืงืขืก ืืื ืืคืืขืฉืืืื ืคืื ืื ืืื ืืขืจื ืขื, ืฆืืงืื ืคึฟื ืงืืืืึทื ืฅ ืืืขื ืืึทืงืืืขื ืึทืืฅ ืื ืืขืืืข ืืื ืงืืื ืืืื ื ืึธื IP ืึทืืจืขืก ืืืขื ืืืื ืฉืึทืื.
ืึทืืืืืืึธื ืึทืืื, ืืืจ ืงืขื ืขื ื ืืฆื ืึท ืคืึทืจืงืขืจื ืคึผืจืึทืงืกื ืฆื ืฆืืฉืืขืื ืกืืึทืืืง ืืื ืืึทืื, ืึธืืขืจ ืืื ืืขื ืคืึทื ืคืื Nextcloud ืืึธืก ืืืขื ื ืืฉื ืืขืื ืึท ืืืืขืจืงื ืคืึทืจืืจืขืกืขืจื ืืื ืืืืงืืึทื. ืึทืืื ืืึธืก ืืื ืึทืคึผืฉืึทื ืึทื ืืื ืึทืคึผืฉืึทื ืึทื.
ืืื ืืื ืฆืืคืจืืื ืฆื ืืืืื ืืขื ืืขืฉืืืืข, ืืื ืืึธืคึฟื ืขืก ืืืขื ืืืื ื ืืฆืืง ืคึฟืึทืจ ืขืืขืฆืขืจ. ืืืื ืืืจ ืืืืกื ืืขืจ ืขืืขืืึทื ื ืืื ืขืคืขืงืืืื ืืขืืืึธืืก ืคึฟืึทืจ ืกืึทืืืืื ื ืืขื ืคึผืจืึธืืืขื, ืืื ืืืึธืื ืืืื ืืึทื ืงืืึทืจ ืคึฟืึทืจ ืืืื ืืึทืืขืจืงืื ืืขื!
ืืงืืจ: www.habr.com