nginx 檔案的最佳路徑

nginx 檔案的最佳路徑

我一直在努力解決各種paths文件nginx以及它們應該放置的位置。眾所周知,我們可以改變停放車輛的位置萬維網我們的目錄web app以及相關log文件。

我發現的問題是,我有用於調用的用戶腳本bash以及需要訪問這些文件各個部分的腳本,以及各個文件的計劃網絡副本,更不用說對這些文件的更新了。RubySSHcrontabnginx

我遵循了nginx各種發行版中軟體包安裝推薦的靜態路徑,但是我經常遇到permissions問題,因為path在可訪問性方面並不是最佳的。因此,我會研究各種主要linux路徑,並選擇在設計時考慮到所有這些的東西,同時保持良好的安全等級。我已經看過不同的位置,現在我再次遇到這個問題(crontabs不工作,permissions各種項目的問題等),我想我應該問所有這些應該位於哪裡。

我的應用程式不是標準的statichtml 應用程式。我有一個正在運行的Rack應用程序,以及任何傳入的上傳等。app serverGemfile

我正在評估的兩個地點是:

但是...這是我在/usr目錄中讀到的內容:

/usr 是檔案系統的第二個主要部分。 /usr 是可共享的唯讀資料。這意味著 /usr 應該可以在各種符合 FHS 的主機之間共享,並且不能寫入。任何特定於主機或隨時間變化的資訊都儲存在其他地方。

大型軟體包不得使用 /usr 層次結構下的直接子目錄。

所以我迷路了。任何人都可以推荐一個可讀/可寫文件的位置,這將使我在嘗試編寫腳本時遇到最小的麻煩嗎cron

答案1

「無論如何」託管網站文件的正確位置是/srv/www。從那裡我通常將其“分區”到與網域相關的目錄。

所以總而言之/srv/www/example.com有這個結構/子目錄:

  • public儲存綁定到該網域/網站的任何可公開存取的文件
  • logs儲存綁定到該網域的任何日誌檔案(NGINX、PHP-FPM 等)
  • sessions儲存使用者特定的會話,例如 PHP 會話

無論您使用 PHP-FPM 還是任何其他“腳本守護進程”,您都希望透過調整守護程式設定並正確 chmod/chown 檔案來正確設定權限。沒有什麼神奇的地方可以讓你不必配置權限模型。看NGINX 和 PHP-FPM。我的權限應該是什麼?- 這非常適合大多數網站設置,無論 PHP-FPM 是什麼:

  • 為每個網站添加單獨的用戶,以進行適當的隔離,例如example
  • 配置您的腳本守護程式以該使用者身分執行
  • 讓您的網頁伺服器 (NGINX) 使用者成為您的網站使用者的群組成員: usermod -a -G example nginx。這允許 NGINX read 讀取具有群組權限設定的讀取文件,並且您可以透過簡單地刪除群組權限位元來保護您不希望它讀取的檔案(設定檔)chmod

最終,永遠不會出現權限問題:所有內容都在同一個用戶下擁有和「運行」!

答案2

投票結束這個問題,因為這個問題真的很模糊。此外,當您的工具不是問題的根源時,您也試圖將這種情況歸咎於您的工具。在某種程度上,您受到 MAC susbsystem 可以/應該做什麼以及套件管理系統如何處理設定檔的限制。然而,由於您沒有告訴我們這是什麼發行版,我們不知道這是否相關,更不用說能夠提出建議了。

嘗試解決此問題時,您應該先建立哪些使用者帳戶需要存取哪些文件的完整清單(在考慮這些文件所在的位置之前)並建立適當的權限模型。

當然,在 /usr 下儲存任何腳本或內容是不太可能的

相關內容