nginx เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Google เดกเตเดฐเตˆเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดซเดฏเดฒเตเด•เตพ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดšเดฐเดฟเดคเตเดฐเดพเดคเต€เดคเด•เดพเดฒเด‚

เดŽเดจเดฟเด•เตเด•เต เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ 1.5 TB-เตฝ เด•เต‚เดŸเตเดคเตฝ เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด•เต‚เดŸเดพเดคเต† เดธเดพเดงเดพเดฐเดฃ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดฒเดฟเด™เตเด•เต เดตเดดเดฟ เด…เดคเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต. เดชเดฐเดฎเตเดชเดฐเดพเด—เดคเดฎเดพเดฏเดฟ เด…เดคเตเดคเดฐเด‚ เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเตเดŸเต† เด…เดณเดตเต VDS-เดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, "เด’เดจเตเดจเตเด‚ เดšเต†เดฏเตเดฏเดพเดจเดฟเดฒเตเดฒ" เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฌเดœเดฑเตเดฑเดฟเตฝ เด…เดงเดฟเด•เด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดค เดตเดพเดŸเด•เดฏเตโ€Œเด•เตเด•เต เดšเต†เดฒเดตเต, เด•เต‚เดŸเดพเดคเต† เด‰เดฑเดตเดฟเดŸ เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต VPS 400GB SSD เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดตเดฟเดŸเต†, เดžเดพเตป เดชเต‹เดฒเตเด‚ เด†เด—เตเดฐเดนเดฟเดšเตเดšเต, เดจเดทเตเดŸเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เด•เด‚เดชเตเดฐเดทเตป เด‡เดฒเตเดฒเดพเดคเต† เดŽเดจเดฟเด•เตเด•เต 1.5TB เด‡เดฎเต‡เดœเตเด•เตพ เด‡เดŸเดพเตป เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ เด…เดคเต เดตเดฟเดœเดฏเดฟเด•เตเด•เตเด‚.

เด…เดชเตเดชเต‹เตพ เดžเดพเตป เด“เตผเดคเตเดคเต, เดžเดพเตป เด—เต‚เด—เดฟเตพ เดกเตเดฐเตˆเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดœเด™เตเด•เต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟเดฏเดพเตฝ, Windows XP-เดฏเดฟเตฝ เดฎเดพเดคเตเดฐเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพ, เด•เต‚เดŸเดพเดคเต† เด‡เตปเตเดฑเตผเดจเต†เดฑเตเดฑเต เดตเต‡เด—เดฎเต‡เดฑเดฟเดฏเดคเดฒเตเดฒเดพเดคเตเดค เด•เดพเดฒเด‚ เดฎเตเดคเตฝ เด’เดฐเต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเดฟเด•เตเด•เตŠเดฃเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฎเดฑเตเดฑเต เด•เดพเดฐเตเดฏเด™เตเด™เตพ ( เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเต†เตผเดšเตเดตเตฝ เดฌเต‹เด•เตเดธเดฟเตปเตเดฑเต† เด† 10-20 เดชเดคเดฟเดชเตเดชเตเด•เตพเด•เตเด•เต เดจเตŠเดธเตเดฑเตเดฑเดพเตพเดœเดฟเด•เต เด…เดฒเตเดฒเดพเดคเต† เดฎเดฑเตเดฑเตŠเดฐเต เดฎเต‚เดฒเตเดฏเดตเตเด‚ เด‰เดฃเตเดŸเดพเด•เดพเตป เดธเดพเดงเตเดฏเดคเดฏเดฟเดฒเตเดฒ), เด…เดชเตเดชเต‹เตพ เดŽเดฒเตเดฒเดพเด‚ เดจเดจเตเดจเดพเดฏเดฟ เดฏเต‹เดœเดฟเด•เตเด•เดฃเด‚. เดชเดฑเดžเตเดžเดฏเตเดŸเดจเต† เด…เดจเตเดธเดฐเดฃเดฏเต‡เดพเดŸเต† เดšเต†เดฏเตเดคเต เดคเต€เตผเด•เตเด•เตเด•. เด…เดคเดฟเดจเดพเตฝ, เดŽเดชเดฟเดเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเดฟเตปเตเดฑเต† เดชเดฐเดฟเดงเดฟ เดฒเด‚เด˜เดฟเดšเตเดšเต (เดตเดดเดฟ, เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดชเดฟเดจเตเดคเตเดฃ เด’เดฐเต เดชเตเดฐเดถเตเดจเดตเตเดฎเดฟเดฒเตเดฒเดพเดคเต† เด“เดฐเต‹ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเด‚ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเตเดŸเต† เด•เตเดตเดพเดŸเตเดŸ 100 เดธเต†เด•เตเด•เตปเดกเดฟเดจเตเดณเตเดณเดฟเตฝ 10 เด†เดฏเดฟ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเต), เดกเดพเดฑเตเดฑ เดตเต‡เด—เดคเตเดคเดฟเตฝ เด…เดคเดฟเตปเตเดฑเต† เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดจเตเดฏเดพเดธ เดธเตเดฅเดฒเดคเตเดคเต‡เด•เตเด•เต เด’เดดเตเด•เดฟ. .

เดŽเดฒเตเดฒเดพเด‚ เดจเดฒเตเดฒเดคเดพเดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด‡เดชเตเดชเต‹เตพ เด…เดคเต เด…เดจเตเดคเดฟเดฎ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต† เด…เดฑเดฟเดฏเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดฎเดฑเตเดฑเต เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดฑเต€เดกเดฏเดฑเด•เตโ€ŒเดŸเตเด•เดณเตŠเดจเตเดจเตเด‚ เด•เต‚เดŸเดพเดคเต†, เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดตเตเดฏเด•เตเดคเดฟ โ€œเดกเต—เตบเดฒเต‹เดกเตโ€ เดฌเดŸเตเดŸเตบ เด…เดฎเตผเดคเตเดคเดฟ เด…เดฎเต‚เดฒเตเดฏเดฎเดพเดฏ เดซเดฏเดฒเดฟเตปเตเดฑเต† เดธเดจเตเดคเต‹เดทเด•เดฐเดฎเดพเดฏ เด‰เดŸเดฎเดฏเดพเดฏเดฟ เดฎเดพเดฑเตเด‚.

เด‡เดตเดฟเดŸเต†, เดฆเตˆเดตเดคเตเดคเดพเตฝ, เดžเดพเตป เดŽเดฒเตเดฒเดพเดคเตเดคเดฐเด‚ เดชเตเดฐเดถเตเดจเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดชเต‹เดฏเดฟ. เด†เดฆเตเดฏเด‚ เด‡เดคเต AmPHP-เดฏเดฟเดฒเต† เด’เดฐเต เดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดฑเตเดฑเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด…เดคเต เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดš เดฒเต‹เดกเดฟเตฝ เดžเดพเตป เดคเตƒเดชเตเดคเดจเดฒเตเดฒ (เด†เดฐเด‚เดญเดคเตเดคเดฟเตฝ 100% เด•เต‹เตผ เด‰เดชเดญเต‹เด—เดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เตเดคเตเดคเดจเต†เดฏเตเดณเตเดณ เด•เตเดคเดฟเดชเตเดชเต). เด…เดชเตเดชเต‹เตพ ReactPHP- เดจเดพเดฏเตเดณเตเดณ เดšเตเดฐเตเดณเตป เดฑเดพเดชเตเดชเตผ เดจเดฟเดฒเดตเดฟเตฝ เดตเดจเตเดจเต, เด…เดคเต เด‰เดชเดญเต‹เด—เด‚ เดšเต†เดฏเตเดค เดธเดฟเดชเดฟเดฏเต เดธเตˆเด•เตเด•เดฟเดณเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเดฟเตฝ เดŽเตปเตเดฑเต† เด†เด—เตเดฐเดนเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดคเดฟเด•เดšเตเดšเตเด‚ เดฏเต‹เดœเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดžเดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเดคเดฟเดฒเตเด‚ เดตเต‡เด—เดค เดจเตฝเด•เดฟเดฏเดฟเดฒเตเดฒ (เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‡เดŸเดตเต‡เดณ เด•เตเดฑเดฏเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เด‡เดคเต เดฎเดพเดฑเดฟ. 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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•