加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

DJANGO仅允许从VPN网络访问某个视图

发布时间:2020-12-20 13:20:41 所属栏目:Python 来源:网络整理
导读:我试图将访问某个 django视图仅指定给从VPN IP调用的客户端(10.8.0.3) 使用以下.conf,apache支持我的django服务器 VirtualHost * ServerAdmin webmaster@demo.cl DocumentRoot /home/project/virtualenvs/env1 ServerName client1.project.cl ServerAlias ww
我试图将访问某个 django视图仅指定给从VPN IP调用的客户端(10.8.0.3)

使用以下.conf,apache支持我的django服务器

<VirtualHost *>
    ServerAdmin webmaster@demo.cl
    DocumentRoot /home/project/virtualenvs/env1
    ServerName client1.project.cl
    ServerAlias www.client1.project.cl
    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined

<Location "/">
SetHandler python-program
PythonHandler virtualhandler
SetEnv DJANGO_SETTINGS_MODULE project.settings
PythonOption django.root
SetEnv SITE_CLIENT_ID client1
PythonDebug On
PythonPath "['/home/project/virtualenvs/env1/django-site','/home/project/virtualenvs/env1/bin'] + sys.path"
</Location>

Alias /media "/home/project/virtualenvs/env1/lib/python2.6/site-packages/django/contrib/admin/media/"

<Location /media>
    SetHandler None
</Location>

<Location /nodesaccess >
        order Deny,Allow
        Deny from all
        Allow from 10.8.0.3
        SetHandler python-program
        PythonHandler virtualhandler
        SetEnv DJANGO_SETTINGS_MODULE project.settings
        PythonOption django.root
        SetEnv SITE_CLIENT_ID client1
        PythonDebug On
        PythonPath "['/home/project/virtualenvs/env1/django-    site','/home/project/virtualenvs/env1/bin'] + sys.path"

</Location>


</VirtualHost>

这个先前的配置允许根据url创建许多django应用程序,我恢复env变量然后apache加载某个只有子域的setting.py.很有意思

一切正常(我的应用程序),但使用“允许来自10.8.0.3”无法拒绝访问

有任何想法吗?

谢谢

解决方法

您可以使用来自HttpRequest.META( http://docs.djangoproject.com/en/dev/ref/request-response/)的REMOTE_ADDR来检查视图中的请求者IP.如果它与您想要的那个不同,则返回404或403页面.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读