āĻšā§ āĻšāĻžāĻŦāĻ°!
āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻŽāĻŋ āĻ¨āĻŋāĻā§āĻā§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻā§āĻāĻā§ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻā§ āĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻ°ā§āĻĒā§āĻ°ā§āĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻžāĻ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻāĻ¤ā§ āĻ āĻŦāĻ°ā§āĻĻā§āĻ§ āĻāĻŋāĻ˛āĨ¤ āĻāĻŽāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻ¯ā§ āĻāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ āĻ¨ā§āĻā§āĻ° āĻāĻžāĻā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤āĨ¤
āĻāĻŽāĻŋ āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻŦāĻžāĻšāĻ āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻāĻŋāĻ˛ āĻ¯āĻž āĻāĻŽāĻžāĻ° āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻ°āĻāĻžāĻ° āĻāĻŋāĻ˛āĨ¤ āĻāĻāĻāĻŋ āĻāĻžāĻā§āĻ° āĻŽā§āĻļāĻŋāĻ¨ā§ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻŋāĻ˛ āĻ¨āĻž, āĻŦāĻž āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻ˛ā§āĻ¯āĻžāĻĒāĻāĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻŋāĻ˛ āĻ¨āĻžāĨ¤ āĻāĻ°ā§āĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§
āĻāĻžāĻā§āĻ¯āĻā§āĻ°āĻŽā§, āĻāĻ¯āĻŧā§āĻŦāĻā§āĻ°āĻžāĻŽ āĻāĻāĻāĻŋ āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻ¯āĻžāĻ° āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ
āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻāĻŦāĻ āĻ˛āĻā§āĻ āĻ¨āĻŋāĻā§āĻ āĻāĻ āĻŋāĻ¨ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§, āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ
āĻŦāĻ°ā§āĻĻā§āĻ§ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻĢāĻ˛ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻšāĻ¤āĻžāĻļ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻŦā§āĻļāĻŋ āĻšāĻŦā§āĻ¨, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ¯āĻŧā§āĻŦ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻŽā§āĻļāĻŋāĻ¨ āĻĨā§āĻā§ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤
āĻāĻžāĻā§āĻ¯āĻā§āĻ°āĻŽā§, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ¸āĻšāĻ (āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻŦ āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¨āĻ¯āĻŧ) āĻĢāĻŋāĻā§āĻ¸āĨ¤ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻ¤āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¯ā§ āĻāĻŽāĻŋ āĻāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻ˛ā§āĻāĻ āĻ¨āĻāĨ¤ āĻāĻŽāĻŋ āĻāĻāĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤
āĻāĻžāĻā§āĻ° āĻ¨ā§āĻā§ āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¯āĻŧā§āĻŦāĻā§āĻ°āĻžāĻŽ āĻŽāĻŋāĻ°āĻ°ā§āĻ° āĻ§āĻžāĻĒā§ āĻ§āĻžāĻĒā§ āĻ¸ā§āĻāĻāĻĒ āĻāĻŦāĻ nginx āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻāĻ°āĻžāĻ° āĻ¸ā§āĻāĻāĻĒ āĻĒāĻžāĻŦā§āĻ¨āĨ¤
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻāĻŦā§āĻ¨ā§āĻā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° 18.04.3 āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤
āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: āĻāĻ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻāĻŋ nginx-āĻ āĻāĻāĻāĻŋ āĻĄā§āĻŽā§āĻ¨ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻŦā§ āĻ¨āĻžāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻā§āĻā§ āĻāĻ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§. āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻāĻŋ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻ¸āĻāĻ¸āĻāĻ˛ āĻ¸āĻš āĻāĻāĻāĻŋ āĻĄā§āĻŽā§āĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻā§āĻ¨ āĻāĻŦāĻ āĻ¯ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻāĻŋāĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻā§āĻ¨ āĻ¸ā§āĻāĻŋāĻ° āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ°āĻ¯āĻŧā§āĻā§ (āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻāĻ¨ā§āĻĻ āĻŽāĻ¤ā§)
āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° ip āĻšāĻ˛ 10.23.0.3, āĻāĻŦāĻ āĻĄā§āĻŽā§āĻāĻ¨ āĻ¨āĻžāĻŽ āĻšāĻ˛ mywebogram.localhost
āĻāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻžāĻŦāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§, āĻāĻŽāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻŦāĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻž.
āĻ¸ā§āĻ¤āĻ°āĻžāĻ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ:
āĻāĻ¯āĻŧā§āĻŦāĻā§āĻ°āĻžāĻŽ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨ā§āĻĄāĻ āĻĻāĻ°āĻāĻžāĻ°āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻāĻŦā§āĻ¨ā§āĻā§ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĨā§āĻā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻŋ, āĻāĻŽāĻ°āĻž nodejs āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 8.x āĻĒāĻžāĻŦāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° 12.x āĻĻāĻ°āĻāĻžāĻ°:
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt update && sudo apt -y install nodejs
āĻāĻŽāĻ°āĻž āĻ¸ā§āĻ āĻāĻžāĻ¯āĻŧāĻāĻžāĻāĻŋ āĻŦā§āĻā§ āĻ¨āĻŋāĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¯āĻŧā§āĻŦāĻā§āĻ°āĻžāĻŽ āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻšāĻŦā§āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋāĻā§ āĻšā§āĻŽ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ°ā§āĻā§ āĻ°āĻžāĻāĻŋāĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻā§āĻ˛ā§āĻ¨ āĻāĻ°ā§āĻ¨:
cd ~ && git clone https://github.com/zhukov/webogram.git
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒ āĻšāĻ˛ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž:
cd webogram && npm install
āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻž āĻ¯āĻžāĻ. āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨:
npm start
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°ā§ āĻā§āĻ˛āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŋ
http://10.23.0.3:8000/app/index.html
āĻāĻ āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻ˛ā§, āĻāĻ¯āĻŧā§āĻŦāĻā§āĻ°āĻžāĻŽ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻĒā§āĻˇā§āĻ āĻžāĻāĻŋ āĻā§āĻ˛āĻŦā§āĨ¤
āĻāĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ
sudo touch /lib/systemd/system/webogram.service
āĻ¯ā§āĻā§āĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻā§ āĻāĻāĻŋ āĻā§āĻ˛ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻšāĻžāĻ°āĻž āĻĻāĻŋāĻ¨ (āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻĨ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°ā§āĻ¨)
[Unit]
Description=Webogram mirror
[Service]
WorkingDirectory=/home/tg/webogram
ExecStart=/usr/bin/npm start
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ:
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§
sudo systemctl daemon-reload
āĻ āĻā§āĻ°āĻžāĻ¨ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨:
sudo systemctl enable webogram.service
āĻāĻ¸ā§āĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ:
sudo systemctl start webogram.service
āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻ¯āĻŧā§āĻŦāĻā§āĻ°āĻžāĻŽ 8000 āĻĒā§āĻ°ā§āĻā§ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻ¤ā§ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž nginx āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¯āĻŧā§āĻŦāĻā§āĻ°āĻžāĻŽā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻŦ, āĻ¤āĻžāĻ āĻŦāĻžāĻāĻ°ā§ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°ā§āĻ 8000 āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻŦāĨ¤
āĻāĻŽāĻ°āĻž āĻāĻ° āĻāĻ¨ā§āĻ¯ udf āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ (āĻŦāĻž āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻā§āĻ¨ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ):
sudo ufw deny 8000
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ¨āĻ udf āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻ°āĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ (āĻ¯āĻžāĻ¤ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻā§āĻā§ āĻ¨āĻž āĻĒāĻĄāĻŧā§) āĻāĻŦāĻ udf āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨:
sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
āĻāĻ° āĻĒāĻ°ā§, āĻāĻ¸ā§āĻ¨ nginx āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻŋāĨ¤
āĻāĻŽāĻŋ āĻāĻĒāĻ°ā§ āĻ¸āĻ¤āĻ°ā§āĻ āĻāĻ°ā§ āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻŽāĻ¨ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ ssl āĻ¸āĻš āĻāĻāĻāĻŋ āĻĄā§āĻŽā§āĻ¨ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻāĻā§āĨ¤ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻŽā§āĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§ āĻā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¸ā§āĻĻāĻŋāĻā§ āĻāĻŽāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒāĻ¨āĻžāĻ° āĻĻā§āĻˇā§āĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖ āĻāĻ°āĻŦ:
server {
...
location ^~ /pluto/apiw1/ {
proxy_pass https://pluto.web.telegram.org/apiw1/;
}
location ^~ /venus/apiw1/ {
proxy_pass https://venus.web.telegram.org/apiw1/;
}
location ^~ /aurora/apiw1/ {
proxy_pass https://aurora.web.telegram.org/apiw1/;
}
location ^~ /vesta/apiw1/ {
proxy_pass https://vesta.web.telegram.org/apiw1/;
}
location ^~ /flora/apiw1/ {
proxy_pass https://flora.web.telegram.org/apiw1/;
}
location ^~ /pluto-1/apiw1/ {
proxy_pass https://pluto-1.web.telegram.org/apiw1/;
}
location ^~ /venus-1/apiw1/ {
proxy_pass https://venus-1.web.telegram.org/apiw1/;
}
location ^~ /aurora-1/apiw1/ {
proxy_pass https://aurora-1.web.telegram.org/apiw1/;
}
location ^~ /vesta-1/apiw1/ {
proxy_pass https://vesta-1.web.telegram.org/apiw1/;
}
location ^~ /flora-1/apiw1/ {
proxy_pass https://flora-1.web.telegram.org/apiw1/;
}
location ^~ /DC1/ {
proxy_pass http://149.154.175.10:80/;
}
location ^~ /DC2/ {
proxy_pass http://149.154.167.40:80/;
}
location ^~ /DC3/ {
proxy_pass http://149.154.175.117:80/;
}
location ^~ /DC4/ {
proxy_pass http://149.154.175.50:80/;
}
location ^~ /DC5/ {
proxy_pass http://149.154.167.51:80/;
}
location ^~ /DC6/ {
proxy_pass http://149.154.175.100:80/;
}
location ^~ /DC7/ {
proxy_pass http://149.154.167.91:80/;
}
location ^~ /DC8/ {
proxy_pass http://149.154.171.5:80/;
}
location / {
auth_basic "tg";
auth_basic_user_file /etc/nginx/passwd.htpasswd;
proxy_pass http://localhost:8000/;
proxy_read_timeout 90s;
proxy_connect_timeout 90s;
proxy_send_timeout 90s;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
āĻāĻŽāĻ°āĻž nginx āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻ¯āĻž āĻ¯ā§āĻ āĻāĻ°āĻŋ:
- āĻāĻŽāĻ°āĻž āĻŽā§āĻ˛ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŋ, āĻ¯āĻž āĻĒā§āĻ°ā§āĻ 8000-āĻ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻŦā§, āĻ¯āĻžāĻ° āĻāĻĒāĻ° āĻāĻ¯āĻŧā§āĻŦāĻā§āĻ°āĻžāĻŽ āĻ¸āĻžāĻĄāĻŧāĻž āĻĻā§āĻ¯āĻŧ
- āĻāĻŽāĻ°āĻž āĻŦā§āĻ¸āĻŋāĻ-āĻ āĻĨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ°ā§āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻŋāĨ¤ āĻā§āĻ āĻāĻŦāĻ āĻŦāĻ āĻĨā§āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĨ¤ (āĻāĻŦāĻ āĻŦā§āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻĄāĻŧāĻžāĻ¤ā§)
- āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ proxy_path āĻ¸āĻš āĻāĻāĻā§āĻā§āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻšāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻļā§āĻˇ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻāĻ°āĻŦ
āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ /etc/nginx/passwd.htpasswd;
āĻ¯āĻžāĻ¤ā§ nginx āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻŋāĻā§ āĻĨāĻžāĻā§āĨ¤
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/passwd.htpasswd tg
nginx āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨:
sudo systemctl restart nginx
āĻāĻāĻ¨ Webgram āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻŦāĻžāĻāĻŋ āĻāĻā§: āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻā§āĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦāĨ¤
āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻā§ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻā§āĻ˛ā§āĻ¨ ~/webogram/app/js/lib/mtproto.js
āĻāĻŦāĻ āĻāĻ° āĻļā§āĻ°ā§āĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĢāĻ°ā§āĻŽāĻāĻŋāĻ¤ā§ āĻāĻ¨ā§āĻ¨:
/*!
* Webogram v0.7.0 - messaging web application for MTProto
* https://github.com/zhukov/webogram
* Copyright (C) 2014 Igor Zhukov <[email protected]>
* https://github.com/zhukov/webogram/blob/master/LICENSE
*/
angular.module('izhukov.mtproto', ['izhukov.utils'])
.factory('MtpDcConfigurator', function () {
var sslSubdomains = ['pluto', 'venus', 'aurora', 'vesta', 'flora']
var dcOptions = Config.Modes.test
? [
{id: 1, host: 'mywebogram.localhost/DC1', port: 80},
{id: 2, host: 'mywebogram.localhost/DC2', port: 80},
{id: 3, host: 'mywebogram.localhost/DC3', port: 80}
]
: [
{id: 1, host: 'mywebogram.localhost/DC4', port: 80},
{id: 2, host: 'mywebogram.localhost/DC5', port: 80},
{id: 3, host: 'mywebogram.localhost/DC6', port: 80},
{id: 4, host: 'mywebogram.localhost/DC7', port: 80},
{id: 5, host: 'mywebogram.localhost/DC8', port: 80}
]
var chosenServers = {}
function chooseServer (dcID, upload) {
if (chosenServers[dcID] === undefined) {
var chosenServer = false,
i, dcOption
if (Config.Modes.ssl || !Config.Modes.http) {
var subdomain = sslSubdomains[dcID - 1] + (upload ? '-1' : '')
var path = Config.Modes.test ? 'apiw_test1' : '/apiw1/'
chosenServer = 'https://mywebogram.localhost/' + subdomain + path
return chosenServer
}
for (i = 0; i < dcOptions.length; i++) {
dcOption = dcOptions[i]
if (dcOption.id == dcID) {
chosenServer = 'http://' + dcOption.host + '/apiw1'
break
}
}
chosenServers[dcID] = chosenServer
}
...
āĻāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒā§āĻˇā§āĻ āĻžāĻāĻŋ āĻ°āĻŋāĻĢā§āĻ°ā§āĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻ˛ āĻā§āĻ˛ā§āĻ¨ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻĻā§āĻā§āĻ¨ā§ˇ āĻ¯āĻĻāĻŋ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻ°ā§ āĻāĻŦāĻ XHR āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻ¯āĻŧā§āĻŦāĻā§āĻ°āĻžāĻŽ āĻāĻāĻ¨ nginx āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻŽāĻŋ āĻāĻļāĻž āĻāĻ°āĻŋ āĻ¯ā§ āĻāĻ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻāĻŋ āĻāĻŽāĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ
āĻ¨ā§āĻ¯ āĻāĻžāĻ°ā§ āĻāĻžāĻā§ āĻ˛āĻžāĻāĻŦā§āĨ¤
āĻ¯āĻžāĻ°āĻž āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒāĻĄāĻŧā§āĻā§āĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŦāĻžāĻāĻā§ āĻ āĻ¸āĻāĻā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻāĨ¤
āĻ¯āĻĻāĻŋ āĻāĻžāĻ°ā§ āĻā§āĻ¨ āĻ
āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ¯āĻŧ āĻŦāĻž āĻāĻŽāĻŋ āĻā§āĻ¨ āĻā§āĻ˛ āĻāĻ°ā§ āĻĨāĻžāĻāĻŋ, āĻāĻŽāĻŋ āĻāĻ¤ā§āĻ¤āĻ° āĻĻāĻŋāĻ¤ā§ āĻĒā§āĻ°ā§ āĻā§āĻļāĻŋ āĻšāĻŦ āĻāĻŦāĻ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§ āĻŦāĻž āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻŽāĻ¨ā§āĻ¤ā§āĻ°ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦāĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com