我刚刚在 CentOs 6.2 服务器上安装了一个 webapp(准确地说是 sakai)。sakai 可通过 @ip:8080/portal 访问,我需要用普通 URL 替换该地址:www.exapmle.com/sakai
我已经替换了:
#<VirtualHost *:80>
# ServerAdmin [email protected]
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
经过
<VirtualHost @ip:80>
ServerAdmin webmaster@my_site.com
DocumentRoot /var/www/cmcf
ServerName my_site.com
ErrorLog logs/my_site.com-error_log
CustomLog logs/my_site.com-access_log common
</VirtualHost>
(我也尝试过,<VirtualHost @ip:8080>
因为我的 webapp 可以通过 @ip:8080/portal 访问,但是徒劳无功)
但是当我尝试从浏览器访问 sakai 时,出现 404 错误:
**Not Found
The requested URL /portal was not found on this server.
Apache/2.2.15 (CentOS) Server at cmcf.men.gov.ma Port 80**
我也尝试将“/opt/apache-tomcat-7.0.29”(sakai 部署的位置)设为 DocumentRoot,(这可能是一个非常大的错误,但这是我第一次管理 apache,所以...)并且我遇到了同样的 404 错误。
我很高兴收到您的任何建议。
答案1
这Sakai 管理指南有关于使用 Apache 部署 Tomcat 应用程序的信息。
基本上,您需要将 Apache 设置为某种反向代理,或者使用基本反向代理配置(mod_proxy),如下所示:
ProxyPass /sakai http://localhost:8080/portal
ProxyPassReverse /sakai http://localhost:8080/portal
Tomcat 正在监听 localhost:8080。
另一种方法是使用 mod_proxy_ajp 设置 Apache,这将使 Apache 以更原生的方式与 Tomcat 通信。对于简单的设置,您可以使用 mod_proxy。之后,您应该可以更好地掌握 Web 堆栈的工作原理,包括 Web 服务器 (Apache) 和应用程序服务器 (Tomcat) 之间的关系。