我在一个django项目(mydjango)中有3个应用程序(app 1,app 2,app 3),每个应用程序都有不同的用途和不同的域(app1.domain.com app2.domain.com app3.domain.com),因为它是一个django项目,我们只有一个manage.py文件。
我试图使用apache 2 web服务器部署这些应用程序,所有这3个应用程序使用相同的virtualenv(使用pyenv)和相同的mysql数据库,具有不同的表。
现在的问题是如何将这3个域指向其特定的应用程序,
谁能提出一个解决方案
我尝试了chatgpt和其他来源/文章建议的一些方法
<VirtualHost *:80>
ServerName domain1.com
ServerAlias www.domain1.com
DocumentRoot /path/to/your/project/<project_name>
WSGIDaemonProcess domain1.com python-path=/path/to/your/project/<project_name>:/path/to/your/project/<virtualenv_name>/lib/python3.X/site-packages
WSGIProcessGroup domain1.com
WSGIScriptAlias / /path/to/your/project/<project_name>/app1/wsgi.py
<Directory /path/to/your/project/<project_name>>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName domain1.com
ServerAlias www.domain1.com
DocumentRoot /path/to/your/project/<project_name>
WSGIDaemonProcess domain1.com python-path=/path/to/your/project/<project_name>:/path/to/your/project/<virtualenv_name>/lib/python3.X/site-packages
WSGIProcessGroup domain1.com
WSGIScriptAlias / /path/to/your/project/<project_name>/app2/wsgi.py
<Directory /path/to/your/project/<project_name>>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName domain1.com
ServerAlias www.domain1.com
DocumentRoot /path/to/your/project/<project_name>
WSGIDaemonProcess domain1.com python-path=/path/to/your/project/<project_name>:/path/to/your/project/<virtualenv_name>/lib/python3.X/site-packages
WSGIProcessGroup domain1.com
WSGIScriptAlias / /path/to/your/project/<project_name>/app3/wsgi.py
<Directory /path/to/your/project/<project_name>>
Require all granted
</Directory>
</VirtualHost>
这里建议的配置显示了3个应用程序的3个不同的“wsgi.py”文件,但是mydjango项目只创建了一个wsgi.py
现在我应该如何修改Apache配置。
谁能提出一些解决办法。
先谢谢你了。
2条答案
按热度按时间hwamh0ep1#
我建议你创建其他项目,因为如果它们的工作方式不同,你只希望它们在不同的域中,那么我建议你创建不同的项目,因为Django在相同的URL下响应,改变的是端点。创建3个项目,并在每个项目中应用您将使用的模型,然后是您将使用的URL,您将拥有3个wsgi.py文件,并且您将能够将它们单独链接到每个域。
vuktfyat2#
你可以将Django应用程序视为“模块”,而不是实际的独立Web应用程序,你可能应该为想要运行的每个Web应用程序创建一个不同的项目,并使用应用程序在内部组织应用程序的不同元素和工作部分。
你可以使用Django的poll app作为一个例子来说明在Django项目中如何使用app。
https://docs.djangoproject.com/en/4.2/intro/tutorial01/#creating-the-polls-app