使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