Python 如何使Django管理员URL仅可供localhost访问?
使Django/admin/URL仅可供本地主机访问的最简单方法是什么 我想到的选择是:Python 如何使Django管理员URL仅可供localhost访问?,python,django,apache,wsgi,django-wsgi,Python,Django,Apache,Wsgi,Django Wsgi,使Django/admin/URL仅可供本地主机访问的最简单方法是什么 我想到的选择是: 将管理站点从项目中分离出来(以某种方式),并作为不同的虚拟主机运行(在Apache2中) 在托管(Apache2)web服务器前使用代理 在WSGI中以某种方式限制Apache中的URL 有没有标准的方法 谢谢 我选择apache配置: <Location /admin> Order Deny, Allow Deny from all Allow from 127.0
- 将管理站点从项目中分离出来(以某种方式),并作为不同的虚拟主机运行(在Apache2中)
- 在托管(Apache2)web服务器前使用代理
- 在WSGI中以某种方式限制Apache中的URL
谢谢 我选择apache配置:
<Location /admin>
Order Deny, Allow
Deny from all
Allow from 127.0.0.1
</Location>
命令拒绝,允许
全盘否定
允许从127.0.0.1开始
HTH.我会选择Apache配置+在前面运行代理+在WSGI中限制:
- 我想确保代理只向某个Apache端口发送/admin李>
- 我想确保Apache只在某些Apache端口上接收/admin,并且它来自代理(带有一个秘密头)或本地主机
- 我想确保WSGI只运行基于特定服务器/客户端条件的/admin内容李>
一个很好的答案-谢谢!我明白了,这是一个全面覆盖的方法。是的,这不需要太多的工作,而且您可以获得一些安心+服务器性能改进。您还可以通过环境变量和部署脚本让它在“开发vs登台vs生产”上以不同的方式工作。通过将URL命名空间的不同部分委托给不同的守护进程组,您可以使用mod_wsgi守护进程模式来处理这个问题。然后,通过为特定的守护进程进程组设置URL子集,您可以分别控制进程/线程的数量,并分别自动重新启动URL子集的进程。另外,在前端使用普通Apache作为代理仍然存在许多与直接面向Apache相同的问题。使用nginx作为代理仍然更好。