nginx 访问404配置

使用Nginx做图片服务器时候,配置之后图片访问一直是  404.
我的配置是
[python] view plain copy
print ?
  1. location /api/v1/upload {  
  2.      root /opt/edu/upload;  
  3. }  
location /api/v1/upload {
     root /opt/edu/upload;
}



文件放在 
/opt/edu/upload  目录下。

访问

http://localhost/api/v1/upload/api/v1/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png

一直是404
日志也是接收到了。但是就是404
  1.   
  1. 10.20.5.247 - - [09/May/2017:13:35:57 +0800] “GET /api/v1/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png HTTP/1.1” 404 571 ”-“ “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36” ”-“  
10.20.5.247 - - [09/May/2017:13:35:57 +0800] "GET /api/v1/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" "-"




最后发现配置的问题。配置静态路径的两种方式。之前静态的都是直接在URL里写根目录,
所以一直没发现。今天写了一个有前缀的URL,就出现了。


RootCause:

root 配置的意思是,会在root配置的目录后跟上URL,组成对应的文件路径。
即我的访问
http://localhost/api/v1/upload/api/v1/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png
最终去寻找的文件路径是
/opt/edu/upload/api/v1/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png
而我想要的是
/opt/edu/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png

而Nginx提供了另外一个静态路径配置  : alias
alias与root区别
  • 官方root
    1
    2
    3
    4
    
    Sets the root directory for requests. For example, with the following configuration
    location /i/ {
        root /data/w3;
    }
    

The /data/w3/i/top.gif file will be sent in response to the “/i/top.gif” request

  • 官方alias
    1
    2
    3
    4
    
    Defines a replacement for the specified location. For example, with the following configuration
    location /i/ {
        alias /data/w3/images/;
    }
    

on request of “/i/top.gif”, the file /data/w3/images/top.gif will be sent.

当访问/i/top.gif时,root是去/data/w3/i/top.gif请求文件,alias是去/data/w3/images/top.gif请求,也就是说
root响应的路径:配置的路径+完整访问路径(完整的location配置路径+静态文件)
alias响应的路径:配置路径+静态文件(去除location中配置的路径)

最终解决访问:
修改配置为

  1. location /api/v1/upload {  
  2.      alias /opt/edu/upload/;  
  3. }  
location /api/v1/upload {
     alias /opt/edu/upload/;
}


注意
  1. 使用alias时目录名后面一定要加“/”
  2. 一般情况下,在location /中配置root,在location /other中配置alias

















document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
    <div id="digg" articleid="71473793">
        <dl id="btnDigg" class="digg digg_disable" onclick="btndigga();">

             <dt>顶</dt>
            <dd>1</dd>
        </dl>


        <dl id="btnBury" class="digg digg_disable" onclick="btnburya();">

              <dt>踩</dt>
            <dd>0</dd>               
        </dl>

    </div>
 <div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank">&nbsp;</a>   </div>
<div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank">&nbsp;</a></div>
<script type="text/javascript">
            function btndigga() {
                $(".tracking-ad[data-mod='popu_222'] a").click();
            }
            function btnburya() {
                $(".tracking-ad[data-mod='popu_223'] a").click();
            }
        </script>

<div style="clear:both; height:10px;"></div>


        <div class="similar_article">
                <h4><a name="t4" target="_blank"></a></h4>
                <div class="similar_c" style="margin:20px 0px 0px 0px">
                    <div class="similar_c_t">
                      &nbsp;&nbsp;相关文章推荐
                    </div>

                    <div class="similar_wrap tracking-ad" data-mod="popu_36" style="max-height:195px;">                       
                        <ul class="similar_list fl">    
                               <li>
                                   <em>•</em>
                                   <a href="http://blog.csdn.net/tanga842428/article/details/73518720" title="Nginx 配置静态文件404问题" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">Nginx 配置静态文件404问题</a>
                               </li>
                               <li>
                                   <em>•</em>
                                   <a href="http://moqiang02.iteye.com/blog/2112667" title="nginx上支持.htaccess伪静态的配置实例" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">nginx上支持.htaccess伪静态的配置实例</a>
                               </li>
                               <li>
                                   <em>•</em>
                                   <a href="http://blog.csdn.net/u010098331/article/details/50885086" title="nginx.conf配置文件详解" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">nginx.conf配置文件详解</a>
                               </li>
                               <li>
                                   <em>•</em>
                                   <a href="http://zzc1684.iteye.com/blog/2274421" title="nginx 伪静态 重定向 包括域名、目录、文件等方法" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">nginx 伪静态 重定向 包括域名、目录、文件等方法</a>
                               </li>
                               <li>
                                   <em>•</em>
                                   <a href="http://blog.csdn.net/qq_33571718/article/details/51280608" title="nginx反向代理服务,因配置文件错误导致访问资源时出现404" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">nginx反向代理服务,因配置文件错误导致访问资源时出现404</a>
                               </li>
                        </ul>
                          <ul class="similar_list fr">      
                               <li>
                                   <em>•</em>
                                   <a href="http://andyaqu.iteye.com/blog/2084023" title="nginx缓存 ngx_cache_purge清除模块 清除失败404错误找不到文件  " strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">nginx缓存 ngx_cache_purge清除模块 清除失败404错误找不到文件  </a>
                               </li>
                               <li>
                                   <em>•</em>
                                   <a href="http://blog.csdn.net/u010363836/article/details/46875433" title="nginx配置文件" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">nginx配置文件</a>
                               </li>
                               <li>
                                   <em>•</em>
                                   <a href="http://zhengdl126.iteye.com/blog/489720" title="【汇总】Nginx.conf配置,安全优化" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">【汇总】Nginx.conf配置,安全优化</a>
                               </li>
                               <li>
                                   <em>•</em>
                                   <a href="http://blog.csdn.net/u012567911/article/details/50825903" title="Nginx配置文件详细说明" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">Nginx配置文件详细说明</a>
                               </li>
                               <li>
                                   <em>•</em>
                                   <a href="http://blog.csdn.net/mchdba/article/details/53309604" title="Nginx 访问静态资源报错404 Not Found 的问题解决过程" strategy="BlogCommendFromCsdn" target="_blank" style="width: 290px;">Nginx 访问静态资源报错404 Not Found 的问题解决过程</a>
                               </li>
                        </ul>
                    </div>
                </div>
            </div>   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值