子目录上的 Apache 虚拟主机
Apache virtual hosts on subdirectories
我正在尝试将 Apache 设置为通过子目录在一个 IP 地址上为多个应用程序提供服务。比方说,我想通过 http://aaa.bbb.ccc.ddd/app1 and App2 over http://aaa.bbb.ccc.ddd/app2 访问 App1。 App1 和 App2 都是独立的 django 项目。我确保这两个应用程序都可以正常工作,只通过 Apache 提供其中一个应用程序。
我在 Apache 的 httpd.conf 文件中添加了以下行:
# App1
<VirtualHost *:80>
DocumentRoot "D:/Projects/App1/App1"
ServerName App1
<Directory "D:/Projects/App1/App1">
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias /app1 "D:/Projects/App1/App1/wsgi.py"
</VirtualHost>
# App2
<VirtualHost *:80>
DocumentRoot "D:/Projects/App2/App2"
ServerName App2
<Directory "D:/Projects/App2/App2">
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias /app2 "D:/Projects/App2/App2/wsgi.py"
</VirtualHost>
像这样工作会导致出现“禁止访问,您无权访问此资源”的错误。当我再打电话给 http://aaa.bbb.ccc.ddd/app2 from another machine. Similar to this, if I put the App2 virtual host in front of the App1 virtual host, I can not access http://aaa.bbb.ccc.ddd/app1 时。因此只能访问 App1 或 App2,但不能同时访问它们。
第一个问题:我的想法是否有可能通过 sub-URL 向网页提供服务?如果没有,还有什么选择?为不同的应用程序使用不同的端口?如果这是一种“有效”的方法,为什么我只能访问一个应用程序而不是两个应用程序。
VirtualHost指令的目的是根据请求的主机提供不同的应用程序。
要根据目录解析应用程序,您可以使用 Alias 指令而不是 VirtualHost。
我正在尝试将 Apache 设置为通过子目录在一个 IP 地址上为多个应用程序提供服务。比方说,我想通过 http://aaa.bbb.ccc.ddd/app1 and App2 over http://aaa.bbb.ccc.ddd/app2 访问 App1。 App1 和 App2 都是独立的 django 项目。我确保这两个应用程序都可以正常工作,只通过 Apache 提供其中一个应用程序。
我在 Apache 的 httpd.conf 文件中添加了以下行:
# App1
<VirtualHost *:80>
DocumentRoot "D:/Projects/App1/App1"
ServerName App1
<Directory "D:/Projects/App1/App1">
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias /app1 "D:/Projects/App1/App1/wsgi.py"
</VirtualHost>
# App2
<VirtualHost *:80>
DocumentRoot "D:/Projects/App2/App2"
ServerName App2
<Directory "D:/Projects/App2/App2">
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias /app2 "D:/Projects/App2/App2/wsgi.py"
</VirtualHost>
像这样工作会导致出现“禁止访问,您无权访问此资源”的错误。当我再打电话给 http://aaa.bbb.ccc.ddd/app2 from another machine. Similar to this, if I put the App2 virtual host in front of the App1 virtual host, I can not access http://aaa.bbb.ccc.ddd/app1 时。因此只能访问 App1 或 App2,但不能同时访问它们。
第一个问题:我的想法是否有可能通过 sub-URL 向网页提供服务?如果没有,还有什么选择?为不同的应用程序使用不同的端口?如果这是一种“有效”的方法,为什么我只能访问一个应用程序而不是两个应用程序。
VirtualHost指令的目的是根据请求的主机提供不同的应用程序。 要根据目录解析应用程序,您可以使用 Alias 指令而不是 VirtualHost。