V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fzhyzamt
V2EX  ›  程序员

请问可以使用 nginx 代理下载文件吗?

  •  
  •   fzhyzamt · 2020-02-27 00:55:51 +08:00 · 3165 次点击
    这是一个创建于 1732 天前的主题,其中的信息可能已经有所发展或是发生改变。

    平时总是遇到直接下载速度很慢的问题, 在服务器上就很流畅. 可能是因为服务商线路问题?

    我目前遇到这种情况是登到服务器上 wget 下来, 然后扔到网站静态资源目录下边, 但是这样非常麻烦.

    所以想是不是可以通过 nginx 做一个不需要配置的正向代理, 用起来像这样: https://example.com/download?url=https://xxx.com/xxx.zip

    这样就可以非常简单的加速下载了, 可能有点像离线下载, 但是应该不需要将文件暂存到服务器上, 直接转发即可.

    如果用代码的话逻辑大概是这样的,

    def redirect(url, response):
      download = requests.get(url, stream=True)
      for chunk in download.iter_content(chunk_size=512):
        if chunk:
          response.write(chunk)
      
    
    8 条回复    2020-09-27 18:15:31 +08:00
    littlewing
        1
    littlewing  
       2020-02-27 01:34:33 +08:00 via iPhone
    反代一下不就行了,然后你直接访问你服务器的 ip 下载
    ysc3839
        2
    ysc3839  
       2020-02-27 01:41:42 +08:00 via Android
    理论上可以,但是这种情况还是建议你使用 Privoxy。
    xabc
        3
    xabc  
       2020-02-27 09:51:22 +08:00
    darknoll
        4
    darknoll  
       2020-02-27 10:49:18 +08:00
    ssh 动态端口转发到本地端口
    learningman
        5
    learningman  
       2020-02-27 16:42:58 +08:00
    php 写个试试?就是小心被拿 shell
    实在不行自建个 V2Ray 呗
    program9527
        6
    program9527  
       2020-09-27 18:13:27 +08:00
    可以
    program9527
        7
    program9527  
       2020-09-27 18:14:09 +08:00
    具体可以看我的 github 地址里面的 `gh-proxy.conf` 文件,你如果要用可能需要稍微改造下

    我的文件代理下载的网站地址:pd.zwc365.com

    里面有 github 地址
    program9527
        8
    program9527  
       2020-09-27 18:15:31 +08:00
    它的代理下载文件功能,最终就是使用的 Nginx 来下载的。我是上 google 搜看有不有人实现了类似功能,于是看到这篇文章才回复的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2813 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 00:10 · PVG 08:10 · LAX 16:10 · JFK 19:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.