0

我有两个应用程序,我想通过 Apache 中的端口 80 在同一 IP 主机上提供服务。为此,我定义了以下虚拟主机:

NameVirtualHost *:80

<VirtualHost *:80>

    DocumentRoot "/var/www/wsgi/rest_api"
    ServerName api

    WSGIDaemonProcess rest_api user=gms  threads=5
    WSGIScriptAlias /api /var/www/wsgi/rest_api/rest_api.wsgi
    WSGIPassAuthorization On


    <Directory /var/www/wsgi/rest_api/rest_api>
        Order deny,allow
        Allow from all
        Options  +Indexes
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/var/www/extjs/cardiocatalogqt"
    ServerName cardiocatalogqt
    Alias /cardiocatalogqt /var/www/extjs/cardiocatalogqt
    <Directory /var/www/extjs/cardiocatalogqt>
        Options Indexes FollowSymLinks
        AllowOverride None
        Order Deny,Allow
        Allow from all
    </Directory>
</VirtualHost>

问题是只有列表中的第一个被识别(它们都独立工作)。我缺少什么让这两者一起工作,独立于订单?

编辑

由于跨域(包括主机名和端口)的 CORS 身份验证问题,我试图避免使用不同的服务器名称。我想要的只是两条不同的路径来相应地解决:http://test.com/cardiocatalogqthttp://test.com/api

4

2 回答 2

1

请使用不同的服务器名称和不同的文档根路径创建两个不同的虚拟主机

<VirtualHost *:80>
    ServerAdmin admin@test.com
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /var/www/test.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

此外,将服务器名称添加到主机文件中。

于 2015-07-30T18:35:25.710 回答
0

mod_alias 是我想要的,ala http://httpd.apache.org/docs/2.2/mod/mod_alias.html

奇迹般有效!

编辑

更具体地说,我的配置如下所示:

WSGIDaemonProcess rest_api user=gms  threads=5
WSGIScriptAlias /api /var/www/wsgi/rest_api/rest_api.wsgi
WSGIPassAuthorization On

<Directory /var/www/wsgi/rest_api/rest_api>
    Order deny,allow
    Allow from all
    Options  +Indexes
</Directory>

<VirtualHost *:80>
    DocumentRoot "/var/www/extjs/cardiocatalogqt"
    ServerName cardiocatalogqt
    Alias /cardiocatalogqt /var/www/extjs/cardiocatalogqt
    <Directory /var/www/extjs/cardiocatalogqt>
        Options Indexes FollowSymLinks
        AllowOverride None
        Order Deny,Allow
        Allow from all
    </Directory>
</VirtualHost>
于 2015-07-30T20:39:48.180 回答