如何使用一个 apache2 虚拟主机配置来提供两个不同的应用程序

如何使用一个 apache2 虚拟主机配置来提供两个不同的应用程序

仅作假设

testsite.com这是我的 php 应用程序

testsite.com/project是 Python 应用程序

我的 apache 站点配置文件中有以下设置/etc/apache2/sites-available/site.conf

<VirtualHost *:443>
                ServerAdmin [email protected]

                DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:443>
                ServerAdmin [email protected]

                DocumentRoot /var/www/html/test-project

                <Directory /var/www/html/test-project/test-project>
                    <Files wsgi.py>
                        Require all granted
                    </Files>
                </Directory>
                WSGIDaemonProcess test python-path=/var/www/html/test-project/test-project python-home=/var/www/html/test-project
                WSGIProcessGroup test
                WSGIScriptAlias / /var/www/html/test-project/test-project/wsgi.py

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

查看上述配置,我只希望任何 url 都能testsite.com/从第一个虚拟主机(即我的 php 应用程序)获得服务并且它可以正常工作,并且每当只有这个特定的testsite.com/projecturl 点击时,它就应该从第二个虚拟主机(即我的 python 应用程序)获得服务。

因此,为了testsite.com/project从第二个虚拟主机获取此 URL,必须绕过第一个虚拟主机。请建议我该怎么做?我应该在第一个虚拟主机中做什么才能将其绕过到第二个虚拟主机。

注意:这与 URL 重写无关,因此请不要建议任何重写规则或与此相关的内容。

答案1

Virtualhost 始终与域名绑定。您不能有两个 VirtualHost 条目指向同一个域和不同的路径。

您需要将 PHP 和 Python 应用程序都移动到处理您的域的单个 VirtualHost。

相关内容