我在 ubuntu 12.10上运行php5, apache 2.2 和 tomcat7 全部由apt-get安装。
我需要运行.php和.jsp文件。 我可以在每个上分别运行它们(tomcat和apache httpd)
我有搜索谷歌但无法为上述版本找到全面且易于理解的解决方案。
朋友告诉我我需要一个代理(用户首先点击apache httpd并将其转发到tomcat,如果它是一个.jsp,然后回到apache然后再转发给用户.php是以正常方式通过apache提供的)
1。我需要什么模块? 2.什么设置(* ALL )像代理(很多我不知道),我需要tomcat和apache的多个站点的虚拟主机。 *
我认为谷歌或论坛本身缺乏具体的指南。
研究
mod_proxy_ajp替换mod_jk
mod_php已经死了
旧系统的mod_php,2.2的fcgid和2.4的proxy_fcgi
修改
1和2解决了。剩下3个
我在下面有以下vhost文件。但是我已经在8080上为/home/ubuntu/tomcat/www/alpinemadotcom
中的aplpinema“ ROOT.war ”运行了tomcate(这是未提取在webapps文件夹中但在缓存文件夹中(尽管是自动的)部署:真)
3-。我在哪里以及如何使用similer:
ProxyPass /apps/jira ajp://backend.example.com:8009/jira
ProxyPassReverse /apps/jira http://www.example.com/jira
<VirtualHost *:80>
ServerAdmin info@alpinema.com
ServerName www.alpinema.com
ServerAlias alpinema.com
DocumentRoot /home/ubuntu/apache/www/alpinemadotcom
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/ubuntu/apache/www/alpinemadotcom/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
答案 0 :(得分:2)
我经常做同样的事情。不再需要mod_jk,因为mod_proxy_ajp替换了你已经提到过的。
首先,首先让你的应用程序完全启动并作为LAMP堆栈运行,这样你的所有PHP都能正常工作。一旦完成,有两个模块,你需要使其余的工作正确mod_proxy和mod_proxy_ajp!
将它们添加到您的LoadModule列表中,然后您可以为您的vhost创建一个别名的别名
有些事情:
ProxyPass /apps/jira ajp://backend.example.com:8009/jira
ProxyPassReverse /apps/jira http://www.example.com/jira
通过首先为php设置apache,一切都应该正常工作,但是一旦有人进入http://www.example.com/jira/ *的路径,它就会自动代理到你的tomcat服务器。 ProxyPassReverse对于重写后端tomcat服务器发送的URL等非常有用,可以更加相对于您的实际托管位置。
要记住的一件非常重要的事情是,在考虑使用代理模块之前,您需要保护您的Apache。作为互联网上的开放代理可能是一件非常糟糕的事情!
请参阅此页:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#access
同一页面还解释了您可以使用代理模块进行的所有不同修改的更多信息。
=========更新示例=========
<VirtualHost *:80>
ServerAdmin info@alpinema.com
ServerName www.alpinema.com
ServerAlias alpinema.com
DocumentRoot /home/ubuntu/apache/www/alpinemadotcom
ProxyPass /alpinemadotcom http://www.alpinema.com:8080/
ProxyPassReverse /alpinemadotcom http://www.alpinema.com/alpinemadotcom
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/ubuntu/apache/www/alpinemadotcom/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>