我在VPS上運行node.js API,由Ubuntu 13.04上的nginx提供服務。靜態文件在本地提供,但不通過nginx
我使用restify和服務靜態文件是這樣的:
server.get(
/\/static\/?.*/,
restify.serveStatic({
directory: __dirname // => /home/misha/rxviz-api
})
);
下面是相關位nginx的配置:
server {
listen 80;
server_name api.rxviz.com;
location/{
proxy_pass http://localhost:4010/;
}
}
(滿配置爲here)
當運行:
curl http://localhost:4010/static/.well-known/acme-challenge/test.json
關於VPS,我得到test.json
的內容。
但是,導航時:在瀏覽器中
http://api.rxviz.com/static/.well-known/acme-challenge/test.json
,我得到404
nginx的錯誤日誌顯示/opt/nginx/html/static/.well-known/acme-challenge/test.json
沒有找到。
爲什麼nginx試圖訪問/opt/nginx/html
中的test.json
而不是/home/misha/rxviz-api
?
數點:
static
目錄的權限是drwxrwxr-x
- 我可以在瀏覽器中訪問
http://api.rxviz.com/
成功
IFAIK,「root」正在追加,但「別名」不是。 (無論如何,我嘗試過'alias/home/misha/rxviz-api /;',但仍然是404)。 –
我也嘗試從nginx配置中刪除'location/static/{...}',但仍然是404。 –
是否在編輯或刪除後重新啓動了nginx守護進程?因爲很奇怪你刪除了位置塊,你仍然可以嘗試使用404 –