当前位置: 首页 > 面试题库 >

一台虚拟主机上的多个mod_wsgi应用程序定向到错误的应用程序

莫飞翮
2023-03-14
问题内容

我试图在同一个域下的子目录中设置两个(或多个)Django应用程序,例如:

http://example.com/site1/
http://example.com/site2/

我知道通常可以通过设置如下所示的apache虚拟主机来正常工作:

<VirtualHost *:80>
    ...
    WSGIScriptAlias /site1 /path/to/site1.wsgi
    WSGIScriptAlias /site2 /path/to/site2.wsgi
</VirtualHost>

现在,我已经验证了每个站点都可以单独工作。但是,当我尝试同时运行两者时,apache将我发送到工作进程首先加载的任何站点。例:

  1. 重新启动配置为6个线程的Apache
  2. 加载example.com/site1/,获得正确的页面
  3. 加载example.com/site2/,获得正确的页面
  4. 再重复2和3 2次。
  5. 重复刷新example.com/site1/,观察它在站点之间的循环。

实际上,对于任何给定数量的工作进程,无论WSGIScriptAlias指令如何,它都会遍历发送请求的总数到它们首先到达的那个进程的总数。无论我做什么(设置WSGIProcessGroup,守护程序模式与嵌入式模式或指令),它都继续表现出这种行为。

如果有人指出我在这里做错了,那将是惊人的!


问题答案:

我在单个Apache安装上运行了多个WSGI应用程序,发现最简单的事情就是拥有多个进程组-每个应用程序一个。

与实际尝试让一个进程同时运行两个(或多个)应用程序相比,一个缺点是与使用其他方法相比,这可能会使用更多的常驻内存。但这使它们保持了很好的分离,并避免了麻烦。那可能对您来说不是一个问题(对我而言并非如此)。

(也可能不是那么糟糕,他们可能能够共享很多文本页面?这只是闲聊;我还没有以任何方式对此进行验证,因为我的设置完全没有内存不足)

以下是我的httpd.conf的一些片段:

WSGIDaemonProcess khdx_wsgi user=galdosd group=galdosd maximum-requests=10000
WSGIScriptAlias /khdx /home/galdosd/khdxweb/rel/khdx/apache/django.wsgi
<Location /khdx>
WSGIProcessGroup khdx_wsgi
</Location>

WSGIDaemonProcess sauron_wsgi user=galdosd group=galdosd maximum-requests=10000
WSGIScriptAlias /sauron /home/galdosd/finalsauronweb/django-root/apache/django.wsgi
<Location /sauron>
WSGIProcessGroup sauron_wsgi
</Location>


 类似资料:
  • 我在同一台机器上安装了一台apache服务器和一台tomcat 7服务器。apache服务器的使用和配置启用了虚拟主机,因为应该为多个php网站提供服务器。但是,我们也需要为一些tomcat应用程序提供服务,因此我们需要配置ajp连接器。 一切进展顺利,我成功地配置了多个apache虚拟主机,为tomcat应用程序提供服务,但我只有一个问题: 通过apache虚拟主机访问java应用程序时不会维护

  • 我有以下内容: 视窗 10 操作系统 -- 主机 Oracle 虚拟盒 -- 来宾计算机 A linux Server (ubuntu) Minikube on Ubuntu for Kubernetes 我编写了一个简单的nodejs应用程序,它应该在虚拟盒子内的端口8087上运行。nodeapp通过kubernetes服务公开,然后我使用“kubectl port-就绪”将请求转发到kuber

  • 我是android studio的新手,请原谅我的无能。两天前,我删除了android studio并重新下载了它,现在模拟器拒绝工作。这是我收到的错误消息: https://controlc.com/105d979d 我已经尝试完全卸载android Studio,包括. gradle和sdk文件以及. m2和. android文件。我还尝试重新安装旧版本的android Studio。我已经在

  • 当我试图将模式更改为“集群”时,它失败了。在web UI中,我看到驱动程序正在运行,但应用程序失败。 编辑的 在日志中,我看到以下内容: 16/03/23 09:06:46信息大师:注册ID为APP-20160323090646-0007的应用wibeee-pipeline 16/03/23 09:06:46信息主:启动执行人App-20160323090646-0007/0关于工人工人-2016

  • 我在CentOS 5、Apache 2.2和PHP 5.4的非常旧的虚拟机上有ZF2应用程序。我尝试在同一个VM上设置不同的环境。因此,我们有: 1)3个文件夹: 使用几乎相同的源代码(git存储库的不同分支)。 2)3个子域: 3)httpd.conf: 为了确保它正常工作,我在每个文件夹的主\索引视图中添加了两行代码。 对于开发人员: 对于qa: 对于prod: 重启httpd服务后: > 如

  • 我想在同一个主机上部署两个不同的django应用程序:第一个对应于url/site1,第二个对应于url/site2。这是我的配置: 这是两个应用程序的wsgi.py文件 现在,我的问题来了。当我转到服务器时,假设http://app1.sites.gr/site1它有时加载site1,有时加载site2!!!!我访问时也是如此http://app1.sites.gr/site2 ... 有时我会