āĻ†āĻŽāĻ°āĻž nginx āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻ•āĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ“āĻ¯āĻŧā§‡āĻŦāĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻžāĻĄāĻŧāĻžāĻ‡

āĻšā§‡ āĻšāĻžāĻŦāĻ°!

āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻ†āĻŽāĻŋ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸā§‡ āĻ…āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ•āĻ°ā§āĻĒā§‹āĻ°ā§‡āĻŸ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽ āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ āĻāĻ¤ā§‡ āĻ…āĻŦāĻ°ā§āĻĻā§āĻ§ āĻ›āĻŋāĻ˛āĨ¤ āĻ†āĻŽāĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ¯ā§‡ āĻāĻ‡ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ…āĻ¨ā§‡āĻ•ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤āĨ¤

āĻ†āĻŽāĻŋ āĻ¤āĻžāĻ¤ā§āĻ•ā§āĻˇāĻŖāĻŋāĻ• āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻŦāĻžāĻšāĻ• āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ āĻ›āĻŋāĻ˛ āĻ¯āĻž āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻ°āĻ•āĻžāĻ° āĻ›āĻŋāĻ˛āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻœā§‡āĻ° āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ›āĻŋāĻ˛ āĻ¨āĻž, āĻŦāĻž āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ›āĻŋāĻ˛ āĻ¨āĻžāĨ¤ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻšā§āĻ›ā§‡ āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻāĻŸāĻŋ āĻ…āĻ¨ā§āĻĒāĻ˛āĻŦā§āĻ§ āĻ›āĻŋāĻ˛. āĻ†āĻŽāĻŋ āĻ…āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨āĻžāĻ¨ā§āĻˇā§āĻ āĻžāĻ¨āĻŋāĻ• āĻ†āĻ¯āĻŧāĻ¨āĻž āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§‡āĻ° āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ…āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ āĻ•āĻ°āĻŋ (āĻ†āĻŽāĻŋ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ•āĻžāĻ°āĻŖā§‡ āĻ†āĻļāĻž āĻ•āĻ°āĻŋ)āĨ¤

āĻ­āĻžāĻ—ā§āĻ¯āĻ•ā§āĻ°āĻŽā§‡, āĻ“āĻ¯āĻŧā§‡āĻŦāĻ—ā§āĻ°āĻžāĻŽ āĻāĻ•āĻŸāĻŋ āĻ“āĻĒā§‡āĻ¨ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻœā§‡āĻ•ā§āĻŸ āĻ¯āĻžāĻ° āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ GitHub āĻāĻ° āĻ˛ā§‡āĻ–āĻ• (āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻžāĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ!)
āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ˛āĻžā§āĻš āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ•āĻ āĻŋāĻ¨ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§‡, āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ…āĻŦāĻ°ā§āĻĻā§āĻ§ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻĢāĻ˛ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻšāĻ¤āĻžāĻļ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻŦā§‡āĻļāĻŋ āĻšāĻŦā§‡āĻ¨, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻŽā§‡āĻļāĻŋāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤

āĻ­āĻžāĻ—ā§āĻ¯āĻ•ā§āĻ°āĻŽā§‡, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻŽā§‹āĻŸāĻžāĻŽā§āĻŸāĻŋ āĻ¸āĻšāĻœ (āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ–ā§āĻŦ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ¨āĻ¯āĻŧ) āĻĢāĻŋāĻ•ā§āĻ¸āĨ¤ āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸āĻ¤āĻ°ā§āĻ• āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¯ā§‡ āĻ†āĻŽāĻŋ āĻāĻ‡ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻ˛ā§‡āĻ–āĻ• āĻ¨āĻ‡āĨ¤ āĻ†āĻŽāĻŋ āĻāĻŸāĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻļāĻžāĻ–āĻž, āĻ¯āĻž āĻ†āĻŽāĻžāĻ° āĻŽāĻ¤ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ github āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻŸā§‡āĻ•āĻ¨ā§‹āĻœāĻ•, āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡āĻ›ā§‡, āĻ¤āĻŦā§‡, āĻ†āĻŽāĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ…āĻ¨ā§āĻ¯ āĻ•āĻžāĻ‰āĻ•ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻŋ āĻāĻ‡ āĻŸāĻŋāĻ‰āĻŸā§‹āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻŸāĻŋ āĻ˛ā§‡āĻ–āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĨ¤

āĻ•āĻžāĻŸā§‡āĻ° āĻ¨ā§€āĻšā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ“āĻ¯āĻŧā§‡āĻŦāĻ—ā§āĻ°āĻžāĻŽ āĻŽāĻŋāĻ°āĻ°ā§‡āĻ° āĻ§āĻžāĻĒā§‡ āĻ§āĻžāĻĒā§‡ āĻ¸ā§‡āĻŸāĻ†āĻĒ āĻāĻŦāĻ‚ 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 āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻ•āĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ“āĻ¯āĻŧā§‡āĻŦāĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻžāĻĄāĻŧāĻžāĻ‡

nginx āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°ā§āĻ¨:

sudo systemctl restart nginx

āĻāĻ–āĻ¨ Webgram āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡ mywebogram.localhost/app/index.html htpasswd āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ˛āĻ—āĻ‡āĻ¨ āĻāĻŦāĻ‚ āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧāĨ¤

āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻŦāĻžāĻ•āĻŋ āĻ†āĻ›ā§‡: āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻœā§‡āĻ‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻ›ā§‹āĻŸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻŦāĨ¤

āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ•ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ–ā§āĻ˛ā§āĻ¨ ~/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 āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž nginx āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻ•āĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ“āĻ¯āĻŧā§‡āĻŦāĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻžāĻĄāĻŧāĻžāĻ‡

āĻ†āĻŽāĻŋ āĻ†āĻļāĻž āĻ•āĻ°āĻŋ āĻ¯ā§‡ āĻāĻ‡ āĻŸāĻŋāĻ‰āĻŸā§‹āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻŸāĻŋ āĻ†āĻŽāĻŋ āĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ…āĻ¨ā§āĻ¯ āĻ•āĻžāĻ°ā§‹ āĻ•āĻžāĻœā§‡ āĻ˛āĻžāĻ—āĻŦā§‡āĨ¤

āĻ¯āĻžāĻ°āĻž āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒāĻĄāĻŧā§‡āĻ›ā§‡āĻ¨ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻŦāĻžāĻ‡āĻ•ā§‡ āĻ…āĻ¸āĻ‚āĻ–ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻāĨ¤

āĻ¯āĻĻāĻŋ āĻ•āĻžāĻ°ā§‹ āĻ•ā§‹āĻ¨ āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ¯āĻŧ āĻŦāĻž āĻ†āĻŽāĻŋ āĻ•ā§‹āĻ¨ āĻ­ā§āĻ˛ āĻ•āĻ°ā§‡ āĻĨāĻžāĻ•āĻŋ, āĻ†āĻŽāĻŋ āĻ‰āĻ¤ā§āĻ¤āĻ° āĻĻāĻŋāĻ¤ā§‡ āĻĒā§‡āĻ°ā§‡ āĻ–ā§āĻļāĻŋ āĻšāĻŦ āĻāĻŦāĻ‚ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§‡ āĻŦāĻž āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻŽāĻ¨ā§āĻ¤ā§āĻ°ā§€āĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŦāĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨