nginx文件上传,下载配置

nginx文件上传,下载配置

序言
Nginx的代理功能与负载均衡功能是最常被用到的,这次主要说一下文件上传转发的功能.
我相信许多人都会遇到文件上传的功能,由于现在基本上都使用的分布式部署.应用服务器和文件服务器相对独立,而且再给一些性质特殊的企业做开发时,只有应用服务对外开放,而文件的上传和下载的服务却不对外开放,这就导致我们无法直接通过外网访问文件服务,所以我就需要有一个类似网关(gateway)东西做请求的转发,这里使用的nginx
比较简单的流程图

看过流程图之后,就知道只要主要的就是如何配置你的nginx,上代码

#文件上传
 server{
       listen  端口号 ssl;#监听的端口
        server_name  ;
       ssl_certificate      /opt/key/*.pem;#并配置证书位置
       ssl_certificate_key  /opt/key/*.key;#配置证书位置
        ssl on;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers  on;
        location /upload{ #需要转发的路径
        proxy_pass https://ip:port/upload/;#真实上传服务的地址与端口
         proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header Host $http_host;
                client_max_body_size 2000M;#允许上传文件大小
        } 
        

   }

以上代码使用https协议作为通信协议,保证数据安全行,如果不需要https的将端口号后面的ssl和ssl_开头的配置注释或者删除即可.

如果需要文件下载的话,这里是nginx直接做转发下载

在这里插入图片描述
首先是接收下载请求的nginx的配置`

 server{
       listen  端口号 ssl;#监听的端口号
        server_name  域名或ip;
        ssl_certificate     /opt/key/*.pem;
        ssl_certificate_key /opt/key/*.key;
        ssl on;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers  on;

       location /{
         proxy_pass https://目标ip:目标端口/;#add
        
       }

   }

以上代码使用https协议作为通信协议,保证数据安全行,如果不需要https的将端口号后面的ssl和ssl_开头的配置注释或者删除即可.

接收下载请求的nginx配置

    #文件下载
server {
        listen      端口号  ssl;#监听的端口号,该端口就是上面的目标端口
        server_name ip; #该ip为转发下载请求的nginx服务器的地址

        ssl_certificate      /opt/key/*.pem; ##prosody生成的秘钥位置
        ssl_certificate_key  /opt/key/*.key; ## prosody生成的秘钥位置

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers  on;
        root /etc/jitsi/jitsi-meet; ###jitsi-meet的根目录
         index index.html index.htm;
         error_page 404 /404.html;
 location /{
         root /DATA/www/resources;//文件目录
         expires   4d;
       }
    }

以上配置使用https协议作为通信协议,保证数据安全行,如果不需要https的将端口号后面的ssl和ssl_开头的配置注释或者删除即可.

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值