如何从localhost子域提供两个wsgi

时间:2012-10-17 09:02:17

标签: apache apache2 mod-wsgi wsgi pyramid

我正在处理的应用程序有两台服务器:一台APi和另一台App。两者都是使用金字塔创建的,计划是将它们放在至少两台独立的机器上。

但对于我的笔记本电脑,我希望能够将api.localhost映射到api服务器,并将app.localhost映射到应用服务器

我做了以下事情:

这是我的httpd.conf文件:

WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess pyramid user=ranjith group=staff processes=1 \
   threads=4 \
   python-path=/home/ranjith/VENV/lib/python2.7/site-packages
<VirtualHost *:80>
    ServerName app.localhost
    WSGIScriptAlias / /home/ranjith/workspace/app.wsgi  
</VirtualHost>
<VirtualHost *:80>
    ServerName api.localhost
    WSGIScriptAlias / /home/ranjith/workspace/api.wsgi  
</VirtualHost>
<Directory /home/ranjith/VENV>
  WSGIProcessGroup pyramid
  Order allow,deny
  Allow from all
</Directory>

我在/ etc / hosts

中添加了这些条目
127.0.0.1       api.localhost
127.0.0.1       app.localhost

为服务器添加了两个WSGI文件。它们在开发服务器上工作时工作

但我真的不知道如何配置localhost子域,我对WSGI没有任何实际知识。

我做了sudo service apache2 restart

它说:

 * Restarting web server apache2

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName                                                                                              
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName 

我认为这不是错误信息。

当我输入http://app.localhost时,由于收到404错误,我无法访问该应用

现在我的httpd.conf文件出了什么问题?

1 个答案:

答案 0 :(得分:0)

然后不要使用子域。请改用“api-localhost”和“app-localhost”。

单独指出:

<Directory /home/ranjith/VENV>
  WSGIProcessGroup pyramid
  Order allow,deny
  Allow from all
</Directory>

错了。应该是:

<Directory /home/ranjith/workspace>
  WSGIProcessGroup pyramid
  Order allow,deny
  Allow from all
</Directory>

否则永远不会使用WSGIProcessGroup,您将以嵌入模式而不是守护进程模式运行。