多个 django 项目、mod_wsgi、单域

发布于 2024-09-01 11:42:52 字数 274 浏览 5 评论 0原文

我有两个不同的 Django“项目”,我想使用 mod_wsgi 在单个域上运行它们。使用 mod_python,我相信有一种方法可以做到这一点,其中某些 url 路径将映射到一个 Django 项目,而其他路径映射到另一个项目,所有这些都在服务器级别。

是否可以使用 mod_wsgi 来做到这一点,如果可以,如何实现?

我考虑过的事情:Apache 虚拟主机描述中包含哪些内容,application.wsgi 文件中包含哪些内容,等等。但我还没有弄清楚具体如何做到这一点。

谢谢!

I have two distinct Django "projects", which I want to run on a single domain using mod_wsgi. With mod_python, I believe there was a way to do this, where certain url paths would be mapped to one Django project, and other paths mapped to the other project, all at the server level.

Is it possible to do this with mod_wsgi, and if so, how?

Things I have considered: what goes in the Apache virtual host description, what goes into application.wsgi files, etc. But I haven't figured out exactly how to do this.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

影子的影子 2024-09-08 11:42:52

这应该不复杂。只需设置 WSGIScriptAlias 指令 - 您需要其中两个,每个路径一个,每个指向一个单独的 .wsgi 文件,其中包含您的项目设置。

This shouldn't be complicated. It's just a matter of setting the WSGIScriptAlias directive - you'll need two of these, one for each path, each pointing to a separate .wsgi file which contains your project settings.

温柔戏命师 2024-09-08 11:42:52

我也在使用 Apache,并在一个域中运行多个 Django 项目。您只需要做两件事:

  1. 修改您的虚拟主机文件

    由于我使用的是 Debian,因此我托管的每个域都有一个虚拟主机文件。在您的虚拟主机文件中,您应该有多个虚拟主机部分。每个项目一个。在这些部分中,您可以定义 WSGIScriptAlias。

    <虚拟主机 *:80>
      ...
     WSGIScriptAlias / /path/to/project1.wsgi
     ...
    
    
    <虚拟主机 *:80>
      ...
      WSGIScriptAlias / /path/to/project2.wsgi
      ...
    
    

    当然,您必须添加所有其他必要的信息。项目 1 和 2 当然会有不同的子域。例如 project1.yourdomain.comproject2.yourdomain.com

  2. 编写您的 *.wsgi 文件

    编写和存储 *.wsgi 文件的方法有很多种。我不知道任何最佳实践。就我而言,我将它们存储在我的项目文件夹中。

    这是一个例子:

    导入操作系统
    导入系统
    os.environ['DJANGO_SETTINGS_MODULE'] = '设置'
    sys.path.append('/path/to/your/project')
    导入 django.core.handlers.wsgi
    应用程序 = django.core.handlers.wsgi.WSGIHandler()
    

    我见过很多其他具有更多“魔力”的 *.wsgi 文件。但这应该让你开始。您可以在 Internet 上找到很多示例。

希望能回答您的问题。不要害怕提出更多问题。

I am also working with Apache and I am running multiple Django projects with one domain. There are only two things you have to do:

  1. Modify your Virtual Host files

    Since I am using Debian I have one vhost file for each domain I am hosting. In your vhost file you should have multiple vhost sections. One for each project. Inside these sections you can define WSGIScriptAlias.

    <VirtualHost *:80>
      ...
     WSGIScriptAlias / /path/to/project1.wsgi
     ...
    </VirtualHost>
    
    <VirtualHost *:80>
      ...
      WSGIScriptAlias / /path/to/project2.wsgi
      ...
    </VirtualHost>
    

    Of course you have to add all the other necessary information. Project 1 and 2 certainly will have different sub-domains. For example project1.yourdomain.com and project2.yourdomain.com.

  2. Write your *.wsgi files

    There are many ways to write and store *.wsgi files. I don't know any best practices. In my case I store them in my project folder.

    This is an example:

    import os
    import sys
    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
    sys.path.append('/path/to/your/project')
    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()
    

    I've seen a lot of other *.wsgi files with more "magic". But this should get you started. You can find a lot of examples all over the internet.

Hope that answers your question. Don't be afraid to ask more questions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文