使Django/admin/urls只能訪問本地主機的最簡單方法是什麼?如何讓Django管理員URL只能訪問本地主機?
選項我已經想到了:
- 單獨的管理界面了項目(在某種程度上),並運行爲不同的虛擬主機(在Apache2的)
- 使用在主機的前代理( Apache2)web服務器
- 以某種方式限制WSGI中Apache內的URL。
是否有標準方法?
謝謝!
使Django/admin/urls只能訪問本地主機的最簡單方法是什麼?如何讓Django管理員URL只能訪問本地主機?
選項我已經想到了:
是否有標準方法?
謝謝!
標識去Apache配置:
<Location /admin>
Order Deny, Allow
Deny from all
Allow from 127.0.0.1
</Location>
HTH。
我會去的Apache配置+在前面跑的代理+在WSGI限制:
我不喜歡的Apache時生成動態內容的介入與Web客戶端通信。由於它的執行模式,一個緩慢或斷開連接的客戶端可以捆綁Apache進程。如果你在前面有一個代理(我更喜歡nginx,但即使是apache也可以),代理會擔心客戶端,Apache可以專注於新的動態內容請求。
取決於你的Apache配置,一個進程還可以汲取大量內存並保持它,直到它遇到MaxRequests。如果你在/ admin中有很多內存密集的代碼(很多人都這樣做),那麼你最終可能會獲得比他們需要的更多內存的Apache進程。如果你將你的Apache配置分爲/ admin和/!admin,你可以調整你的apache設置,讓更多的/!管理服務器需要更小的佔用空間。
我是偏執的服務器設置。
一個很好的答案 - 謝謝!我明白,這是全面覆蓋的方式。 – wodow
是的,這沒什麼更多的工作,並且你可以安心和服務器性能得到改善。您還可以通過環境變量和部署腳本在「開發vs登臺和生產」上以不同的方式工作。 –
您不需要單獨的Apache來分割URL部分。您可以通過將不同部分的URL名稱空間委託給不同的守護進程進程組來處理它,並使用mod_wsgi守護進程模式。然後,您可以分別控制進程/線程數量和自動重新啓動進程,通過爲特定的守護進程組設置它來爲一組子URL分別進行控制。另外,在前面使用香草Apache作爲代理仍然有許多與Apache直接面對相同的問題。使用nginx作爲代理仍然好得多。 –
簡單和第一次工作。 – wodow