多域一个Django项目

2024-10-04 03:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在多个域/网站上运行一个django项目。每个网站都需要访问一个网址.py"/"视图.py". 我已经用this tutorial试过了,但它对我不起作用。 有没有一种方法可以用中间件以一种简单的方式做到这一点(没有站点框架)? 一点帮助就太好了。谢谢。在

编辑:正如我在上面的教程中所做的那样,我的httpd.conf看起来像这样:

ServerRoot "/home/webfactionusername/webapps/erdbeer/apache2"

LoadModule authz_core_module modules/mod_authz_core.so
LoadModule dir_module        modules/mod_dir.so
LoadModule env_module        modules/mod_env.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module       modules/mod_mime.so
LoadModule rewrite_module    modules/mod_rewrite.so
LoadModule setenvif_module   modules/mod_setenvif.so
LoadModule wsgi_module       modules/mod_wsgi.so
LoadModule unixd_module      modules/mod_unixd.so

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /home/webfactionusername/logs/user/access_erdbeer.log combined
ErrorLog /home/webfactionusername/logs/user/error_erdbeer.log

Listen 10414
KeepAlive Off
SetEnvIf X-Forwarded-SSL on HTTPS=1
ServerLimit 1
StartServers 1
MaxRequestWorkers 5
MinSpareThreads 1
MaxSpareThreads 3
ThreadsPerChild 5

WSGIDaemonProcess erdbeer processes=2 threads=12 python-path=/home/webfactionusername/webapps/erdbeer:/home/webfactionusername/webapps/erdbeer/myproject:/home/webfactionusername/webapps/erdbeer/lib/python2.7
WSGIProcessGroup erdbeer
WSGIRestrictEmbedded On
WSGILazyInitialization On
WSGIScriptAlias / /home/webfactionusername/webapps/erdbeer/myproject/myproject/wsgi.py


# Virtual hosts setup
NameVirtualHost *
<VirtualHost *>
    ServerName mydomain123abc.de

    WSGIDaemonProcess erdbeer processes=5 python-path=/home/webfactionusername/webapps/erdbeer:/home/webfactionusername/webapps/erdbeer/lib/python2.7 threads=1
    WSGIScriptAlias / /home/webfactionusername/webapps/erdbeer/subdomain1.wsgi
</VirtualHost>

<VirtualHost *>
    ServerName seconddomain123.de

    WSGIDaemonProcess erdbeer processes=5 python-path=/home/webfactionusername/webapps/erdbeer:/home/webfactionusername/webapps/erdbeer/lib/python2.7 threads=1
    WSGIScriptAlias / /home/webfactionusername/webapps/erdbeer/subdomain2.wsgi
</VirtualHost>

编辑2:我还是不能理解这个中间件的概念。我只能理解我可能需要如何使用“process_request”,但是我不知道中间件文件是什么样子。假设我有“domain1.com”和“domain2.com”,它们应该使用以下URL:

域1_网址.py在

^{pr2}$

域2_网址.py在

from django.conf.urls import include, url
from django.contrib import admin
from django.http import HttpResponse

urlpatterns = [
    url(r'^$', 'myapp2.views.home'),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^robots\.txt$', lambda r: HttpResponse("User-agent: *\nDisallow:", content_type="text/plain")),
]

如何在中间件中使用它?(我是初学者…)


Tags: 中间件djangopylogmodulesmodwsgihome