【Nginx-20180108】Nginx的搭建文件服务器问题一则
? ? 導(dǎo)讀:公司內(nèi)部一個(gè)提供apk包下載的磁盤(pán)空間不足,需要將新生成的apk包放到最新掛載的磁盤(pán)上面。內(nèi)部使用的是nginx做為文件服務(wù)器對(duì)內(nèi)部提供apk下載服務(wù),現(xiàn)在開(kāi)發(fā)將新生成的包放到新的目錄上面,所以nginx的根目錄的路徑也需要更改了,但是我們希望舊的url還可以對(duì)外提供服務(wù)。為此現(xiàn)在我的解決思路就是在nginx新建一個(gè)新的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;}因?yàn)閚ginx的配置已經(jīng)存在一個(gè)對(duì)外提供下載的location,所以我是拷貝舊的,然后更改 location 和 root。
? ? 測(cè)試:
包的絕對(duì)路徑:
? 2. 下載命令或者訪問(wèn)信息:
curl?http://ab.moumentei.com/apk_download/tasks/packagename_v10.15.2_base.apk??-L?-vvv? ? 按照上面的命令去執(zhí)行,在執(zhí)行的時(shí)候返回結(jié)果卻是404,文件找不到。我一開(kāi)始一直以為是因?yàn)槲易约涸L問(wèn)的url寫(xiě)錯(cuò),所以核實(shí)了很長(zhǎng)的時(shí)間,然后又懷疑自己是不是nginx對(duì)于下劃線_不能識(shí)別,所以我將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;}? ? 然后繼續(xù)執(zhí)行上面的那個(gè)命令,結(jié)果還是依舊返回404。為此我再一次仔細(xì)核實(shí)了以前的文件下載服務(wù)器的配置信息,然后更改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;}? ? 然后執(zhí)行以下命令:
? ? 執(zhí)行之后,文件能夠完全下載下來(lái)了。但是這個(gè)我有一個(gè)疑問(wèn),在官網(wǎng)上面沒(méi)有找到相關(guān)信息,希望有比較清楚的大神能夠告知:
? ? 文件的絕對(duì)路徑是/data/apk_download/tasks/packagename_v10.15.2_base.apk,配置的location的root根目錄是/data/apk_download,url正常訪問(wèn)應(yīng)該是http://ab.moumentei.com/apk_download/tasks/packagename_v10.15.2_base.pak應(yīng)該是沒(méi)有問(wèn)題,也不存在找不到文件的說(shuō)法;在更改location的root根目錄為/data,那么正常來(lái)說(shuō)訪問(wèn)的url應(yīng)該是http://ab.moumentei.com/apk_download/apk_download/tasks/packagename_v10.15.2_base.pak,比之前的url應(yīng)該是多了一個(gè)apk_downlod,但是訪問(wèn)的結(jié)果還是404,返回文件找不到。使用舊的http://ab.moumentei.com/apk_download/tasks/packagename_v10.15.2_base.pak卻是成功了,這個(gè)就是我不能理解的地方。
關(guān)于這個(gè)問(wèn)題咨詢(xún)了一下我的同事,他告訴我:
? ? 就是在 location /apk_download/ { ........ } 這里apk_download 代表了2個(gè)意思:一個(gè)是域名后面的接的url判斷,若是域名后面接有/apk_download/則會(huì)跳到這個(gè)url下面;另外則是在根目錄root下面data目錄指定的文件目錄。
? ? 所以才會(huì)在第一次配置的時(shí)候訪問(wèn)一直報(bào)錯(cuò)是404,按照這個(gè)說(shuō)法的話在我第一次配置的是root /data/apk_download;那么我的訪問(wèn)拼接的路徑應(yīng)該是/apk_download/apk_download/tasks.... 這個(gè)目錄,暫時(shí)還沒(méi)有方法驗(yàn)證這個(gè)判斷是否正確。在這里先記錄下來(lái)。
轉(zhuǎn)載于:https://blog.51cto.com/11819159/2058642
總結(jié)
以上是生活随笔為你收集整理的【Nginx-20180108】Nginx的搭建文件服务器问题一则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: FFmpeg AVCodecContex
- 下一篇: Nginx —— 检查配置文件ngi