簡體   English   中英

Nginx服務器用於靜態內容

[英]Nginx server for static content

啟動Nginx服務器以提供靜態內容(js等)的最低要求是什么?

我有:

http {
    server {
        listen 80;
        location / {
            root /Users/matt/Dev;
        }
    }
}

events {
    worker_connections  1024;
}

但是我得到:

禁止的

You don't have permission to access / on this server.

我已經運行sudo nginx -s reload

默認情況下,當我們運行Nginx的為root ,如sudo nginx ... ,Nginx的將啟動主進程root和偵聽給一個或多個HTTP端口,但出於安全原因,將啟動由用戶幾個工作進程nobody 這些工作進程將處理傳入的請求。 我們可以通過運行檢查

更新 :將ps -ef更改為ps aux因為在macosx / freebsd上時, ps -ef不顯示用戶

$ ps aux | grep nginx

在您的情況下,由於nobody沒有權限訪問/ Users / matt / Dev,因此在訪問相關位置時我們不會出現權限錯誤。

要解決此問題,我們可以嘗試以下任一方法

  1. 在nginx.conf中定義用戶,例如user matt; 要么
  2. 設置/ Users / matt / Dev的訪問權限。 請注意,我們還需要確保沒有用戶具有搜索權限(即x權限)來訪問路徑名路徑前綴中的所有目錄,例如/ Users,/ Users / matt,/ Users / matt / Dev並已讀取/ Users / matt / Dev及其子文件的權限。

使用您的配置,您可以訪問單個文件。 因此,您可以獲取example.com/example.js (嘗試一下,就可以看到它的工作原理)。

使用example.com您要顯示已禁用的根目錄( /Users/matt/Dev )的內容。 要啟用使用autoindex

location / {
    root /Users/matt/Dev;
    autoindex on;
}

在這里查看更多信息:

ngx_http_autoindex_module模塊處理以斜杠('/')結尾的請求,並生成目錄列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM