使用 apache mod_wsgi 的 Django 多个站点:请求到错误的站点

     2023-02-25     8

关键词:

【中文标题】使用 apache mod_wsgi 的 Django 多个站点:请求到错误的站点【英文标题】:Django multiple sites with apache mod_wsgi: Request going to wrong site 【发布时间】:2014-07-25 15:02:33 【问题描述】:

我正在尝试使用带有mod_wsgi 的虚拟主机从一台 apache 服务器运行 2 个 Django 站点。问题是即使我使用另一个站点的主机名,我的所有请求都将发送到同一个 Django 站点(可能是 Apache 加载的第一个站点)。我的网站是

https://staging-test.mydomain.com

https://staging.mydomain.com

这是我的虚拟主机文件的内容。我已经创建了两个部署文件,我将它们放在我的 Apache 安装 (Ubuntu) 的 site-enabled 目录中。两个文件,因为它有助于开发操作。无论如何,配置看起来像

<VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
    ServerName https://staging-test.mydomain.com
    SetEnv PYTHON_EGG_CACHE /tmp
    WSGIDaemonProcess https://staging-test.mydomain.com user=www-data group=www-data processes=10 threads=1 python-path=/home/talha/site1 display-name=wsgid
    WSGIProcessGroup https://staging-test.mydomain.com
    WSGIScriptAlias / /home/talha/site1/wsgi.py process-group=https://staging-test.mydomain.com application-group=%RESOURCE
    WSGIPassAuthorization On
    WSGIApplicationGroup %RESOURCE
</VirtualHost>

<VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
    ServerName https://staging.mydomain.com
    SetEnv PYTHON_EGG_CACHE /tmp
    WSGIDaemonProcess https://staging.mydomain.com user=www-data group=www-data processes=10 threads=1 python-path=/home/talha/site2 display-name=wsgid
    WSGIProcessGroup https://staging.mydomain.com
    WSGIScriptAlias / /home/talha/site2/wsgi.py process-group=https://staging.mydomain.com application-group=%RESOURCE
    WSGIPassAuthorization On
    WSGIApplicationGroup %RESOURCE
</VirtualHost>     

我尝试使用WSGIDaemonProcessWSGIProcessGroup 使站点在不同的进程中运行,但是请求仍然只发送到其中一个。

你有什么想法吗?

【问题讨论】:

ServerName中删除https:// 【参考方案1】:

正如有人指出的那样,您最初的问题是您不应该在 ServerName 中使用 URI,它必须只是主机名。除了解决这个问题,请确保您阅读:

http://blog.dscpl.com.au/2012/10/requests-running-in-wrong-django.html

由于 ServerName 设置错误,您遇到了该帖子中描述的默认 VirtualHost 问题的变体。

【讨论】:

我从ServerName 中删除了https,现在它们是staging.mydomain.comstaging-test.mydomain.com。系统的主机名是staging.mydomain.com。我仍然面临同样的问题。您能解释一下您在回答中提到的变化是什么吗? 如博文中所述,如果 Apache 与 VirtualHost 的请求不匹配,它将回退到使用 Apache 在读取其配置文件时找到的第一个 VirtualHost。因此,如果打算由第二个 VirtualHost 处理的请求不匹配,如果那是第一个 Apache 看到的,它将使用上面的第一个。一个可能的原因可能是因为您使用的是“_default_”而不是“*”,因为我不希望在这种情况下看到这种情况。

如何配置 Django 网站以使用 Apache VirtualHosts?

...述】:我最近开始开发Django网站,我想将它们部署在带有mod_wsgi和Apache的CentOSVPS上。我关注了thisguide,它运行良好,但我希望同时运行多个Djan 查看详情

Django/Apache 使用 mod_wsgi 冻结

】Django/Apache使用mod_wsgi冻结【英文标题】:Django/Apachefreezingwithmod_wsgi【发布时间】:2011-11-2320:09:50【问题描述】:我有一个Django应用程序在Nginx后面的2个负载平衡mod_wsgi/Apache服务器后面运行(静态文件、反向代理/负载平衡)。... 查看详情

使用 mod_wsgi 和 django 运行 Apache

】使用mod_wsgi和django运行Apache【英文标题】:RunApachewithmod_wsgianddjango【发布时间】:2020-10-1107:57:51【问题描述】:无法使用Apache+Django启动服务器操作系统:MacOSCatalina阿帕奇:2.4.43Python:3.8Django:3.0.7由Brew的Apache使用。mod_wsgi通过... 查看详情

使用 mod_wsgi 在 apache 上设置 Django

】使用mod_wsgi在apache上设置Django【英文标题】:SettingupDjangoonapachewithmod_wsgi【发布时间】:2014-05-1114:56:12【问题描述】:尝试使用mod_wsgi在CentOS6上的apache上设置Django,但我不确定我的设置有什么问题。我尝试了很多不同的设置指... 查看详情

Apache + mod_wsgi 与 nginx + gunicorn

】Apache+mod_wsgi与nginx+gunicorn【英文标题】:Apache+mod_wsgivsnginx+gunicorn【发布时间】:2013-08-0513:53:50【问题描述】:我想部署一个django站点(是github上的开源edx代码)。我面临着在使用之间做出选择带有mod_wsgi的Apache带有gunicorn的nginx... 查看详情

apache/mod_wsgi - 如何使用不同的 python 虚拟环境配置多个 webapps

】apache/mod_wsgi-如何使用不同的python虚拟环境配置多个webapps【英文标题】:apache/mod_wsgi-howtoconfiguremutiplewebappsusingdifferentpythonvirtualenvironments【发布时间】:2020-04-0205:34:52【问题描述】:环境:Ubuntu,ApacheHTTPD,用python3.6编译的mod_ws... 查看详情

初始化使用 Apache 和 mod_wsgi 运行的 Flask 应用程序

】初始化使用Apache和mod_wsgi运行的Flask应用程序【英文标题】:InitialisingaFlaskapprunningwithApacheandmod_wsgi【发布时间】:2017-07-1507:39:39【问题描述】:我有一个使用mod_wsgi在Apache下运行的Flask应用程序。应用程序需要做一些初始化,包... 查看详情

Python/Django - 使用 mod_wsgi 启动 apache

】Python/Django-使用mod_wsgi启动apache【英文标题】:Python/Django-Startingapachewithmod_wsgi【发布时间】:2016-08-2312:59:07【问题描述】:尝试启动mod_wsgi。得到一个fmod相关的参考错误。[root@host]#mod_wsgi-expressstart-serverwsgi.py--port=80\\>--userwww-d... 查看详情

Django/mod_wsgi/Apache - mod_wsgi 没有使用为其编译的 Python 版本 - “ModuleNotFoundError: No module named 'math'

】Django/mod_wsgi/Apache-mod_wsgi没有使用为其编译的Python版本-“ModuleNotFoundError:Nomodulenamed\\\'math\\\'”【英文标题】:Django/mod_wsgi/Apache-mod_wsgiisnotusingthePythonversionitwascompiledfor-"ModuleNotFoundError:Nomodulenamed\'m 查看详情

用 apache 编译 mod_wsgi 的问题

】用apache编译mod_wsgi的问题【英文标题】:Problemscomplingmod_wsgiwithapache【发布时间】:2013-08-1113:25:51【问题描述】:我有一个centos6服务器,我正在尝试配置apache+wsgi+django但我不能。因为我的系统有Python2.6并且我使用Python2.7.5,所以... 查看详情

apache2 + mod_wsgi 的soaplib(lxml)问题

】apache2+mod_wsgi的soaplib(lxml)问题【英文标题】:problemwithsoaplib(lxml)withapache2+mod_wsgi【发布时间】:2011-07-2923:00:34【问题描述】:当我使用apache2+modwsgi启动我的应用程序时我抓住了异常类型:ImportError异常值:DLL加载失败:找不... 查看详情

如何使用 Django/Apache/mod_wsgi/MySQL 最大化 EC2 的性能?

】如何使用Django/Apache/mod_wsgi/MySQL最大化EC2的性能?【英文标题】:HowcanImaximizeperformanceonEC2withDjango/Apache/mod_wsgi/MySQL?【发布时间】:2012-08-0101:49:13【问题描述】:我正在使用Ubuntu12.04LTS的EC2m1.medium实例(3.75Gb内存、2个EC2计算单元... 查看详情

使用 mod_wsgi 在 Apache 上部署多个 django 应用程序

】使用mod_wsgi在Apache上部署多个django应用程序【英文标题】:DeployingmultipledjangoappsonApachewithmod_wsgi【发布时间】:2012-07-1509:00:45【问题描述】:我想在同一主机上部署两个不同的django应用程序:第一个对应url/site1,第二个对应url/s... 查看详情

如何使用wsgi部署django

参考技术A如何使用Apache和mod_wsgi部署Django¶用Apache和mod_wsgi部署Django项目是一个第三方的,测试的方法来得到Django生产环境。mod_wsgi是一个Apache模块,可以托管任何PythonWSGI应用程序,包括Django。Django将与支持mod_wsgi的任何版本... 查看详情

如何在 Apache 和 mod_wsgi 中使用 Flask 路由?

】如何在Apache和mod_wsgi中使用Flask路由?【英文标题】:HowdoIuseFlaskrouteswithApacheandmod_wsgi?【发布时间】:2012-03-2914:53:00【问题描述】:我已经设置好我的Apache服务器,它正在通过mod_wsgi处理Flask响应。我已经通过别名注册了WSGI脚本... 查看详情

在生产中,Apache + mod_wsgi 还是 Nginx + mod_wsgi?

】在生产中,Apache+mod_wsgi还是Nginx+mod_wsgi?【英文标题】:Inproduction,Apache+mod_wsgiorNginx+mod_wsgi?【发布时间】:2010-09-1618:27:11【问题描述】:对于大中型pythonWSGI应用程序,Apache+mod_wsgi或Nginx+mod_wsgi使用什么?哪种组合需要更多的内... 查看详情

Apache + mod_wsgi + django:为积压的请求发送默认响应

】Apache+mod_wsgi+django:为积压的请求发送默认响应【英文标题】:Apache+mod_wsgi+django:sendadefaultresponseforabackloggedrequest【发布时间】:2021-03-0500:11:24【问题描述】:我正在使用Apache2.4、mod_wsgi和Django运行Web服务器。由于高流量,服务... 查看详情

使用 Python 3.6、Apache 2.4 和 Django 1.11 在 Ubuntu 上安装 mod_wsgi

】使用Python3.6、Apache2.4和Django1.11在Ubuntu上安装mod_wsgi【英文标题】:Installmod_wsgionUbuntuwithPython3.6,Apache2.4,andDjango1.11【发布时间】:2017-12-0810:58:29【问题描述】:如何获取为Python3.6.1编译的Apache2的mod_wsgi?(或任何未来的Python版本... 查看详情