【Nginx-20180108】Nginx的搭建文件服务器问题一则

导读:公司内部一个提供apk包下载的磁盘空间不足,需要将新生成的apk包放到最新挂载的磁盘上面。内部使用的是nginx做为文件服务器对内部提供apk下载服务,现在开发将新生成的包放到新的目录上面,所以nginx的根目录的路径也需要更改了,但是我们希望旧的url还可以对外提供服务。为此现在我的解决思路就是在nginx新建一个新的location为新的root根目录。

location配置信息:

    location /apk_download/ {
        root /data/apk_download;
        autoindex on;
        gzip on;
        gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
        gzip_min_length  500;
        gzip_buffers     4 8k;
    }

因为nginx的配置已经存在一个对外提供下载的location,所以我是拷贝旧的,然后更改 location 和 root。

测试:

  1. 包的绝对路径:
/data/apk_download/tasks/packagename_v10.15.2_base.apk

2. 下载命令或者访问信息:

curl http://ab.moumentei.com/apk_download/tasks/packagename_v10.15.2_base.apk  -L -vvv

按照上面的命令去执行,在执行的时候返回结果却是404,文件找不到。我一开始一直以为是因为我自己访问的url写错,所以核实了很长的时间,然后又怀疑自己是不是nginx对于下划线_不能识别,所以我将location更改如下:

location /download/ {
        root /data/apk_download;
        autoindex on;
        gzip on;
        gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
        gzip_min_length  500;
        gzip_buffers     4 8k;
    }

然后继续执行上面的那个命令,结果还是依旧返回404。为此我再一次仔细核实了以前的文件下载服务器的配置信息,然后更改location配置信息如下:

location /apk_download/ {
        root /data/;
        autoindex on;
        gzip on;
        gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
        gzip_min_length  500;
        gzip_buffers     4 8k;
    }

然后执行以下命令:

curl http://ab.moumentei.com/apk_download/tasks/packagename_v10.15.2_base.apk  -L -vvv

执行之后,文件能够完全下载下来了。但是这个我有一个疑问,在官网上面没有找到相关信息,希望有比较清楚的大神能够告知:

文件的绝对路径是/data/apk_download/tasks/packagename_v10.15.2_base.apk,配置的location的root根目录是/data/apk_download,url正常访问应该是http://ab.moumentei.com/apk_download/tasks/packagename_v10.15.2_base.pak应该是没有问题,也不存在找不到文件的说法;在更改location的root根目录为/data,那么正常来说访问的url应该是http://ab.moumentei.com/apk_download/apk_download/tasks/packagename_v10.15.2_base.pak,比之前的url应该是多了一个apk_downlod,但是访问的结果还是404,返回文件找不到。使用旧的http://ab.moumentei.com/apk_download/tasks/packagename_v10.15.2_base.pak却是成功了,这个就是我不能理解的地方。

关于这个问题咨询了一下我的同事,他告诉我:

就是在 location /apk_download/ { ........ } 这里apk_download 代表了2个意思:一个是域名后面的接的url判断,若是域名后面接有/apk_download/则会跳到这个url下面;另外则是在根目录root下面data目录指定的文件目录。

所以才会在第一次配置的时候访问一直报错是404,按照这个说法的话在我第一次配置的是root /data/apk_download;那么我的访问拼接的路径应该是/apk_download/apk_download/tasks.... 这个目录,暂时还没有方法验证这个判断是否正确。在这里先记录下来。

原文地址:http://blog.51cto.com/11819159/2058642

时间: 2024-10-18 18:13:27

【Nginx-20180108】Nginx的搭建文件服务器问题一则的相关文章

windows nginx 搭建文件服务器(通俗易懂)

在一些项目里面,有时候需要访问图片的时候.相信很多人都是的直接把文件放到项目里面的: 今天在这里给大家介绍的是利用nginx 搭建图片服务器,直接访问磁盘上的图片. 方法一(使用root关键字): location /img { root E:/pic/; #磁盘的目录路径 autoindex on; #是否开启目录浏览 } ps:访问的时候他是去E:/pic/img这个目录找了.即:它会在root 后面这个目录再加一层/img目录 方法二(使用alias关键字): location /img

用nginx简单搭建文件服务器

步骤一:安装httpd相关工具 yum -y install httpd-tools    步骤二:生成密码文件 htpasswd -c /usr/local/nginx/conf/htpasswd username 根据提示填写密码    步骤三:修改nginx配置 里添加:            server {                listen 80;                root /data/wwwroot/download;                serve

nginx的简介和搭建基于域名的虚拟主机

今天就来和大家讲一讲nginx和基于域名搭建虚拟主机 简介 Nginx (engine x) 是一个高性能的Web服务器和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 俄罗斯程序员Igor Sysoev于2002年开始Nginx是增长最快的Web服务器,市场份额已达33.3%全球使用量排名第二2011年成立商业公司 Nginx源码结构: 代码量大约11万行C代码源代码目录结构core (主干和基础设置)event (事件驱动模型和不同的IO复用模块)http (HTTP服务器和模块

linux下keepalived+nginx的负载均衡搭建

应用场景:集群搭建过程中nginx通常会代理多个tomcat,以达到高可用状态,但此时如果nginx所在的机器宕机,会影响线上使用,可以用keepalived+nginx来做nginx的ha 一.所需环境:1)两台主机proxy01为master,proxy02为backup;2)centos6.6 x64;3)keepalived;4)nginx 二.安装nginx 1)安装编译nginx所需的依赖包 yum install gcc gcc-c++ make automake autoconf

CentOS7.2 上 Nginx PHP Mariadb 环境搭建

最近有个ERP+PHP-web 測試頁面環境部署需求,需要部署nginx+php的cgi+socket的模式.mysql环境.查看服务端口是否起来,我们习惯使用netstat指令查看,所以如果你的系统里尚未安装netstat,可直接安裝 yum install -y net-tools即可 实验环境: Linux版本:CentOS 7.2 nginx版本:nginx-1.10.1 PHP版本:php-5.6.5 mysql版本:MariaDB-5.5.52 一.首先部署nginx 把相關依賴包安

Nginx负载均衡初步搭建

负载均衡(Load Balance):将用户的访问分摊到多个服务器上,负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可. 负载均衡也是反向代理所能实现的一个重要功能,区分于正向代理: 反向代理:以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端. 正向代理:一个位于客户端和原始服务器(originserver)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原

DigitalOcean上使用Tornado+MongoDB+Nginx+Supervisor+DnsPod快速搭建个人博客

DigitalOcean 之前买了个便宜的VPS并且在上面搭建了我自己写的博客程序,后来VPS里运行MongoDB经常自己挂掉就索性没理了.直到现在VPS已经过期,服务器被强制关掉了.周末在家索性想着把这个博客程序重新搭建起来. 选择Linode还是云主机(阿里云等等)?阿里云貌似有些贵,而且还有一堆备案的流程.Linode最近推出SSD服务,20刀/月的价格,加量不加价,很是吸引人.但无奈还是花的有些心疼.忽然另外一个VPS服务DigitalOcean(链接含refcode喔)被我无意发现.D

HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客

HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客 VPS主机   2014年06月02日 17:20 评论» 文章目录 Debian上安装 CentOS上安装 Ubuntu上安装 装Wordpress HHvm安装小结 HHVM是一个强大的可以用于替代PHP的建站环境,出自Facebook团队,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点.实践证明HHVM可以明显地提升PHP执行速度,节省大量的服务器资源

CentOS 6.4 安装配置LNMP服务器(Nginx+PHP+MySQL) 及搭建Wordpress

准备:1.配置防火墙,开启80端口.3306端口 # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state –state ESTABLISHED,RE

Linux Debian 下LNMP服务器——nginx+mysql+php环境搭建及配置

昨天刚给公司服务器装了LNMP服务器环境,在这里简单记录一下过程备忘. 这里我在安装的时候是用的Dotdeb源,仅供参考. 1.导入Dotdeb源,据说Dotdeb源里的软件版本比较新. 在向源中导入Dotdeb前,我们需要先获取GnuPG key并导入: wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | apt-key add - 提示OK,表明导入成功.然后我们开始导入Dotdeb源,源列表的位置在“/etc/apt/sources