nginx āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ Google āĻĄā§āĻ°āĻžāĻ‡āĻ­ āĻĨā§‡āĻ•ā§‡ āĻĢāĻžāĻ‡āĻ˛ āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻž

āĻĒā§āĻ°āĻžāĻ—āĻāĻ¤āĻŋāĻšāĻžāĻ¸āĻŋāĻ•

āĻāĻŸāĻž āĻ āĻŋāĻ• āĻ¤āĻžāĻ‡ āĻ˜āĻŸā§‡āĻ›ā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻ•ā§‡ āĻ•ā§‹āĻĨāĻžāĻ“ 1.5 TB-āĻāĻ° āĻŦā§‡āĻļāĻŋ āĻĄā§‡āĻŸāĻž āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ˛āĻŋāĻ™ā§āĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻŸāĻŋ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻŽā§‡āĻŽāĻ°āĻŋāĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ­āĻŋāĻĄāĻŋāĻāĻ¸-āĻ āĻ¯āĻžāĻ¯āĻŧ, āĻ­āĻžāĻĄāĻŧāĻžāĻ° āĻ–āĻ°āĻš āĻ¯āĻž "āĻ•āĻŋāĻ›ā§āĻ‡ āĻ•āĻ°āĻžāĻ° āĻ¨ā§‡āĻ‡" āĻŦāĻŋāĻ­āĻžāĻ— āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻŦāĻžāĻœā§‡āĻŸā§‡ āĻ–ā§āĻŦ āĻŦā§‡āĻļāĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ¨āĻ¯āĻŧ, āĻāĻŦāĻ‚ āĻ‰ā§ŽāĻ¸ āĻĄā§‡āĻŸāĻž āĻĨā§‡āĻ•ā§‡ āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ•āĻŸāĻŋ VPS 400GB SSD āĻ›āĻŋāĻ˛, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡, āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻŋ āĻšā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ, āĻ†āĻŽāĻŋ āĻ˛āĻ¸āĻ˛ā§‡āĻ¸ āĻ•āĻŽā§āĻĒā§āĻ°ā§‡āĻļāĻ¨ āĻ›āĻžāĻĄāĻŧāĻž 1.5TB āĻ‡āĻŽā§‡āĻœ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°āĻ¤āĻžāĻŽ āĻ¨āĻž āĻāĻŸāĻž āĻ¸āĻĢāĻ˛ āĻšāĻŦā§‡āĨ¤

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

āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ­āĻžāĻ˛ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻšā§āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ–āĻ¨ āĻāĻŸāĻŋ āĻļā§‡āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒā§ŒāĻāĻ›ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻĻāĻ°āĻ•āĻžāĻ°āĨ¤ āĻ¤āĻĻā§āĻĒāĻ°āĻŋ, āĻ…āĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻĒā§āĻ¨āĻƒāĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡, āĻ¤āĻŦā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻāĻ•āĻœāĻ¨ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋ āĻ•ā§‡āĻŦāĻ˛ "āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ" āĻŦā§‹āĻ¤āĻžāĻŽ āĻŸāĻŋāĻĒā§āĻ¨ āĻāĻŦāĻ‚ āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¸ā§āĻ–ā§€ āĻŽāĻžāĻ˛āĻŋāĻ• āĻšāĻ¨āĨ¤

āĻāĻ–āĻžāĻ¨ā§‡, āĻˆāĻļā§āĻŦāĻ°ā§‡āĻ° āĻ•āĻ¸āĻŽ, āĻ†āĻŽāĻŋ āĻ¸āĻŦ āĻ§āĻ°āĻŖā§‡āĻ° āĻāĻžāĻŽā§‡āĻ˛āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ—āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽāĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻāĻŸāĻŋ AmPHP-āĻ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ›āĻŋāĻ˛, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻ¯ā§‡ āĻ˛ā§‹āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ¤āĻžāĻ¤ā§‡ āĻ†āĻŽāĻŋ āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻŸ āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¨āĻž (āĻļā§āĻ°ā§āĻ¤ā§‡ 100% āĻŽā§‚āĻ˛ āĻ–āĻ°āĻšā§‡ āĻāĻ•āĻŸāĻŋ āĻ¤ā§€āĻ•ā§āĻˇā§āĻŖ āĻ˛āĻžāĻĢ)āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ°āĻŋāĻ…ā§āĻ¯āĻžāĻ•ā§āĻŸāĻĒāĻŋāĻāĻ‡āĻšāĻĒāĻŋ-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻ°ā§āĻ˛ āĻ°â€ā§āĻ¯āĻžāĻĒāĻžāĻ°āĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ¯āĻž āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ†āĻŽāĻžāĻ° āĻ‡āĻšā§āĻ›āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŦā§‡āĻļ āĻŽāĻžāĻ¨āĻžāĻ¨āĻ¸āĻ‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻŋ āĻ¯āĻž āĻšā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¤āĻž āĻŽā§‹āĻŸā§‡āĻ“ āĻ—āĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĻ¨āĻŋ (āĻāĻŸāĻŋ āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻ•āĻ˛āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ āĻ•āĻŽāĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ curl_multi_select, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻŽāĻ¤ā§‹ āĻĒā§‡āĻŸā§āĻ• āĻĨāĻžāĻ•ā§‡)āĨ¤ āĻ†āĻŽāĻŋ āĻāĻŽāĻ¨āĻ•āĻŋ āĻŽāĻ°āĻŋāĻšāĻž-āĻ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ˛ā§‡āĻ–āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻŦā§‡āĻļ āĻĻā§āĻ°ā§āĻ¤ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĻ›ā§‡ (āĻāĻŸāĻŋ āĻ†āĻļā§āĻšāĻ°ā§āĻ¯āĻœāĻ¨āĻ• āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĻ›ā§‡, āĻ†āĻŽāĻžāĻ° āĻœā§āĻžāĻžāĻ¨ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡), āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻŋ āĻ†āĻ°āĻ“ āĻšāĻžāĻ‡, āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻāĻ•āĻ°āĻ•āĻŽ āĻ•āĻ āĻŋāĻ¨ āĻ›āĻŋāĻ˛āĨ¤ āĻ¤āĻĻāĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤, āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻ°āĻ•āĻŽ āĻ…āĻĻā§āĻ­ā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋāĻ•ā§‡ āĻŦāĻžāĻĢāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻ¸ā§‡āĻ‡ āĻŽā§āĻšā§āĻ°ā§āĻ¤āĻŸāĻŋ āĻŸā§āĻ°ā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻ¤ā§‡ āĻšā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¯āĻ–āĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄāĻŸāĻŋ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻļā§‡āĻˇ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡, āĻāĻŸāĻŋ āĻ•āĻŋāĻ›ā§āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻāĻ•āĻžāĻŦāĻžāĻāĻ•āĻž āĻ›āĻŋāĻ˛, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻāĻ•āĻĻāĻŋāĻ¨ āĻ…āĻŦāĻ§āĻŋ āĻ†āĻŽāĻŋ āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻŖāĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻāĻ¸ā§‡āĻ›āĻŋ āĻ¯āĻž āĻāĻ° āĻĒāĻžāĻ—āĻ˛āĻžāĻŽāĻŋāĻ¤ā§‡ āĻ…āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ›āĻŋāĻ˛: nginx, āĻ¤āĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ•āĻ­āĻžāĻŦā§‡, āĻ†āĻŽāĻŋ āĻ¯āĻž āĻšāĻžāĻ‡ āĻ¤āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻĻā§āĻ°ā§āĻ¤ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŽāĻ¨āĻ•āĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ§āĻ°āĻŖā§‡āĻ° āĻŦāĻŋāĻ•ā§ƒāĻ¤āĻŋāĻ•ā§‡ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ - āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡? āĻāĻŦāĻ‚ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§‡āĻ° āĻ…āĻ°ā§āĻ§ā§‡āĻ• āĻĻāĻŋāĻ¨ āĻĒāĻ°ā§‡, āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻŽ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¯āĻž āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ• āĻŽāĻžāĻ¸ āĻ§āĻ°ā§‡ āĻ¸ā§āĻĨāĻŋāĻ°āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤

NGINX āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

# ПĐĩŅ€Đ˛Ņ‹Đŧ Đ´ĐĩĐģĐžĐŧ ŅĐžĐˇĐ´Đ°Đ´Đ¸Đŧ в ĐēĐžĐŊŅ„иĐŗĐ°Ņ… ĐŊĐ°ŅˆĐĩĐŗĐž ŅĐ°ĐšŅ‚Đ° ĐžŅ‚Đ´ĐĩĐģŅŒĐŊŅƒŅŽ ĐģĐžĐēĐ°Ņ†Đ¸ŅŽ.
location ~* ^/google_drive/(.+)$ {

    # И СаĐēŅ€ĐžĐĩĐŧ ĐĩŅ‘ ĐžŅ‚ ĐŋĐžŅŅ‚ĐžŅ€ĐžĐŊĐŊиŅ… ĐŗĐģаС (Ņ€ŅƒĐē, ĐŊĐžĐŗ и ĐŋŅ€ĐžŅ‡Đ¸Ņ… Ņ‡Đ°ŅŅ‚ĐĩĐš Ņ‚ĐĩĐģĐ°).
    internal;

    # ОĐŗŅ€Đ°ĐŊиŅ‡Đ¸Đŧ ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅĐŧ ŅĐēĐžŅ€ĐžŅŅ‚ŅŒ Đ´Đž Ņ€Đ°ĐˇŅƒĐŧĐŊŅ‹Ņ… ĐŋŅ€ĐĩĐ´ĐĩĐģОв (Ņ Са Ņ€Đ°Đ˛ĐŊĐžĐŋŅ€Đ°Đ˛Đ¸Đĩ).
    limit_rate 1m;

    # А Ņ‡Ņ‚Ой nginx ĐŧĐžĐŗ ĐŊĐ°ĐšŅ‚и ŅĐĩŅ€Đ˛ĐĩŅ€Đ° google drive ŅƒĐēĐ°ĐļĐĩĐŧ ĐĩĐŧŅƒ Đ°Đ´Ņ€ĐĩŅ Ņ€ĐĩСОĐģвĐĩŅ€Đ°.
    resolver 8.8.8.8;

    # CОйĐĩŅ€ĐĩĐŧ ĐŋŅƒŅ‚ŅŒ Đē ĐŊĐ°ŅˆĐĩĐŧŅƒ Ņ„Đ°ĐšĐģŅƒ (ĐŧŅ‹ ĐŋĐžŅ‚ĐžĐŧ ĐŋĐĩŅ€ĐĩдадиĐŧ ĐĩĐŗĐž СаĐŗĐžĐģОвĐēĐ°Đŧи).
    set $download_url https://www.googleapis.com/drive/v3/files/$upstream_http_file_id?alt=media;

    # А Ņ‚Đ°Đē ĐļĐĩ Content-Disposition СаĐŗĐžĐģОвОĐē, иĐŧŅ Ņ„Đ°ĐšĐģĐ° ĐŧŅ‹ ĐŋĐĩŅ€ĐĩдадиĐŧ ĐžĐŋŅŅ‚ŅŒ ĐļĐĩ в СаĐŗĐžĐģОвĐēĐ°Ņ….
    set $content_disposition 'attachment; filename="$upstream_http_filename"';

    # ЗаĐŋŅ€ĐĩŅ‚иĐŧ ĐąŅƒŅ„Ņ„ĐĩŅ€Đ¸ĐˇĐ¸Ņ€ĐžĐ˛Đ°Ņ‚ŅŒ ĐžŅ‚вĐĩŅ‚ ĐŊĐ° диŅĐē.
    proxy_max_temp_file_size 0;

    # И, Ņ‡Ņ‚Đž ĐŊĐĩĐŧĐ°ĐģОваĐļĐŊĐž, ĐŋĐĩŅ€ĐĩдадиĐŧ СаĐŗĐžĐģОвОĐē Ņ Ņ‚ĐžĐēĐĩĐŊĐžĐŧ (ĐŊĐĩ СĐŊĐ°ŅŽ ĐŋĐžŅ‡ĐĩĐŧŅƒ, ĐŊĐž в СаĐŗĐžĐģОвĐēĐ°Ņ… иС $http_upstream Ņ‚ĐžĐēĐĩĐŊ ĐŋĐĩŅ€ĐĩĐ´Đ°Ņ‚ŅŒ ĐŊĐĩ ĐŋĐžĐģŅƒŅ‡Đ¸ĐģĐžŅŅŒ. ВĐĩŅ€ĐŊĐĩĐĩ ĐŋĐĩŅ€ĐĩĐ´Đ°Ņ‚ŅŒ ĐŋĐžĐģŅƒŅ‡Đ¸ĐģĐžŅŅŒ, ĐŊĐž ŅĐēĐžŅ€ĐĩĐš вŅĐĩĐŗĐž ĐĩĐŗĐž ĐŗĐ´Đĩ-Ņ‚Đž ĐŊŅƒĐļĐŊĐž ŅĐēŅ€Đ°ĐŊиŅ€ĐžĐ˛Đ°Ņ‚ŅŒ, ĐŋĐžŅ‚ĐžĐŧŅƒ Ņ‡Ņ‚Đž ĐŗŅƒĐŗĐģ ĐžŅ‚Đ´Đ°ĐĩŅ‚ ĐžŅˆĐ¸ĐąĐēŅƒ авŅ‚ĐžŅ€Đ¸ĐˇĐ°Ņ†Đ¸Đ¸).
    proxy_set_header Authorization 'Bearer $1';

    # И вŅĐĩ, ĐžŅŅ‚Đ°ĐģĐžŅŅŒ ĐžŅ‚ĐŋŅ€Đ°Đ˛Đ¸Ņ‚ŅŒ СаĐŋŅ€ĐžŅ ĐŗŅƒĐŗĐģŅƒ ĐŋĐž Ņ€Đ°ĐŊĐĩĐĩ ŅĐžĐąŅ€Đ°ĐŊĐŊĐžĐŧŅƒ ĐŊĐ°Đŧи Đ°Đ´Ņ€ĐĩŅŅƒ.
    proxy_pass $download_url;

    # А Ņ‡Ņ‚Ой Ņƒ ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅ ĐŋŅ€Đ¸ ŅĐēĐ°Ņ‡Đ¸Đ˛Đ°ĐŊии ĐžŅ‚ОйŅ€Đ°ĐˇĐ¸ĐģĐžŅŅŒ ĐŋŅ€Đ°Đ˛Đ¸ĐģŅŒĐŊĐžĐĩ иĐŧŅ Ņ„Đ°ĐšĐģĐ° ĐŧŅ‹ дОйавиĐŧ ŅĐžĐžŅ‚вĐĩŅ‚ŅŅ‚вŅƒŅŽŅ‰Đ¸Đš СаĐŗĐžĐģОвОĐē.
    add_header Content-Disposition $content_disposition;

    # ОĐŋŅ†Đ¸ĐžĐŊĐ°ĐģŅŒĐŊĐž ĐŧĐžĐļĐŊĐž ĐŋĐžŅƒĐąĐ¸Ņ€Đ°Ņ‚ŅŒ ĐŊĐĩĐŊŅƒĐļĐŊŅ‹Đĩ ĐŊĐ°Đŧ СаĐŗĐžĐģОвĐēи ĐžŅ‚ ĐŗŅƒĐŗĐģĐ°.
    proxy_hide_header Content-Disposition;
    proxy_hide_header Alt-Svc;
    proxy_hide_header Expires;
    proxy_hide_header Cache-Control;
    proxy_hide_header Vary;
    proxy_hide_header X-Goog-Hash;
    proxy_hide_header X-GUploader-UploadID;
}

āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ›āĻžāĻĄāĻŧāĻž āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¸ā§āĻĒāĻ¯āĻŧāĻ˛āĻžāĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻŦā§‡

location ~* ^/google_drive/(.+)$ {
    internal;
    limit_rate 1m;
    resolver 8.8.8.8;
    
    set $download_url https://www.googleapis.com/drive/v3/files/$upstream_http_file_id?alt=media;
    set $content_disposition 'attachment; filename="$upstream_http_filename"';
    
    proxy_max_temp_file_size 0;
    proxy_set_header Authorization 'Bearer $1';
    proxy_pass $download_url;
    
    add_header Content-Disposition $content_disposition;
    
    proxy_hide_header Content-Disposition;
    proxy_hide_header Alt-Svc;
    proxy_hide_header Expires;
    proxy_hide_header Cache-Control;
    proxy_hide_header Vary;
    proxy_hide_header X-Goog-Hash;
    proxy_hide_header X-GUploader-UploadID;
}

āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻ– āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ˛āĻŋāĻ–āĻ›āĻŋ

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĒāĻŋāĻāĻ‡āĻšāĻĒāĻŋ-āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ‡āĻšā§āĻ›āĻžāĻ•ā§ƒāĻ¤āĻ­āĻžāĻŦā§‡ āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ•āĻŋāĻŸ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻŦā§‡āĨ¤ āĻ†āĻŽāĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋ āĻ¯ā§‡ āĻ•ā§‡āĻ‰ āĻ¯āĻžāĻ° āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ āĻ­āĻžāĻˇāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻ†āĻ›ā§‡ āĻ¤āĻžāĻ°āĻž āĻ†āĻŽāĻžāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ‡ āĻŦāĻŋāĻ­āĻžāĻ—āĻŸāĻŋ āĻ¸āĻ‚āĻšāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻŦā§‡āĻ¨āĨ¤

<?php

# ĐĸĐžĐēĐĩĐŊ Đ´ĐģŅ Google Drive Api.
define('TOKEN', '*****');

# ID Ņ„Đ°ĐšĐģĐ° ĐŊĐ° ĐŗŅƒĐŗĐģ диŅĐēĐĩ
$fileId = 'abcdefghijklmnopqrstuvwxyz1234567890';

# ОĐŋŅ†Đ¸ĐžĐŊĐ°ĐģŅŒĐŊĐž, ĐŊĐž Ņ‚Đ°Đē ĐēĐ°Đē ĐŧŅ‹ ĐŊĐĩ ĐŋĐĩŅ€ĐĩĐ´Đ°ĐĩĐŧ ĐŊиĐēĐ°ĐēиŅ… Đ´Đ°ĐŊĐŊŅ‹Ņ… - ĐŋĐžŅ‡ĐĩĐŧŅƒ ĐąŅ‹ и ĐŊĐĩŅ‚?
http_response_code(204);

# ЗададиĐŧ СаĐŗĐžĐģОвОĐē c ID Ņ„Đ°ĐšĐģĐ° (в ĐēĐžĐŊŅ„иĐŗĐ°Ņ… nginx ĐŧŅ‹ ĐŋĐžŅ‚ĐžĐŧ ĐŋĐžĐģŅƒŅ‡Đ¸Đŧ ĐĩĐŗĐž ĐēĐ°Đē $upstream_http_file_id).
header('File-Id: ' . $fileId);
# И СаĐŗĐžĐģОвОĐē Ņ иĐŧĐĩĐŊĐĩĐŧ Ņ„Đ°ĐšĐģĐ° (ŅĐžĐžŅ‚вĐĩŅ‚ŅŅ‚вĐĩĐŊĐŊĐž $upstream_http_filename).
header('Filename: ' . 'test.zip');
# ВĐŊŅƒŅ‚Ņ€ĐĩĐŊĐŊиК Ņ€ĐĩдиŅ€ĐĩĐēŅ‚. А ĐĩŅ‰Đĩ в Đ°Đ´Ņ€ĐĩŅĐĩ ĐŧŅ‹ ĐŋĐĩŅ€ĐĩдадиĐŧ Ņ‚ĐžĐēĐĩĐŊ, Ņ‚ĐžŅ‚ ŅĐ°ĐŧŅ‹Đš, Ņ‡Ņ‚Đž ĐŧŅ‹ ĐŋĐžĐģŅƒŅ‡Đ°ĐĩĐŧ иС $1 в nginx.
header('X-Accel-Redirect: ' . rawurlencode('/google_drive/' . TOKEN));

āĻĢāĻ˛āĻžāĻĢāĻ˛

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

āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§‹āĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻāĨ¤ āĻ†āĻŽāĻŋ āĻ†āĻļāĻž āĻ•āĻ°āĻŋ āĻ†āĻŽāĻžāĻ° āĻ—āĻ˛ā§āĻĒ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻāĻ•āĻŸā§ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻŦāĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ›āĻŋāĻ˛.

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

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