再会,
首先,我对服务器相关的东西非常陌生,所以请耐心听我说。我正在运行 ubuntu 11.10,并且在我的服务器上安装了 apache tomcat railo 堆栈,使用https://github.com/talltroym/Railo-Ubuntu-Installer-Script/blob/master/setup-railo.sh
到目前为止一切都很好,服务器运行完美,但我似乎不知道如何配置多个网站。现在每个连接似乎都转到 /var/www/。
我尝试在 apache 中添加一个新的 vhost,除了它只是输出我的 cfml 文件而不是通过 railo 服务器之外,它运行良好。
我认为这是因为需要告知 railo 需要处理这个问题,经过一番研究,我在 available-sites/default-ssl 文件中找到了这一行:
DirectoryIndex index.cfm index.cfml default.cfm default.cfml index.htm index.html
#Proxy .cfm and cfc requests to Railo
ProxyPassMatch ^/(.+.cf[cm])(/.*)?$ http://127.0.0.1:8080/$1
ProxyPassReverse / http://127.0.0.1:8080/
将这些行复制到新的 vhost 后,railo 似乎正确激活了,但是从 /var/www 运行,而不是从我在 vhost 中设置的目录运行。
我的新虚拟主机如下所示:
<VirtualHost *:80>
DocumentRoot "/var/www/test"
ServerName -hidden-
<Directory "/var/www/test">
allow from all
Options +Indexes
</Directory>
DirectoryIndex index.cfm index.cfml default.cfm default.cfml index.htm index.html
#Proxy .cfm and cfc requests to Railo
ProxyPassMatch ^/(.+.cf[cm])(/.*)?$ http://127.0.0.1:8080/$1
ProxyPassReverse / http://127.0.0.1:8080/
#Deny access to admin except for local clients
<Location /railo-context/admin/>
Order deny,allow
Deny from all
Allow from 172.16.0.0/16
Allow from 192.168.0.0/24
</Location>
</VirtualHost>
我可以参考一些建议,看看我需要在哪些地方做出改变才能让这个功能发挥作用。干杯!
答案1
Railo 运行的 Tomcat 实例也配置为/var/www
;它是以下行/opt/tomcat/conf/web.xml
:
<Context path="" docBase="/var/www"/>
但是,如果您只是将其更改为目录/var/www/test
,那么主站点中的项目将停止工作。相反,请使用您正在构建的目录结构,为每个站点设置子目录。在新的虚拟主机中更改您的代理指令:
ProxyPassMatch ^/(.+.cf[cm])(/.*)?$ http://127.0.0.1:8080/test/$1
ProxyPassReverse / http://127.0.0.1:8080/test/
这个目录结构还意味着有人可以通过 访问测试站点http://main-site.name/test/
,所以请注意这一点;将其文档移到/var/www/main/
或其他地方可能是个好主意,并相应地调整其代理语句。