我有两个Web应用程序,一个用PHP,一个用Java(Play框架)。
我想让这些应用程序可供我的客户使用,而我只有一台服务器用于测试环境。
对于我的问题,最好和最容易维护的方法是什么?
我已经在查看Apache服务器上的虚拟主机选项。但是最好的吗?是否有任何第三方工具可以帮助我根据http请求中的端口将流量转移到PHP和Java应用程序?
PHP应用程序的端口号为80,Java应用程序为9000。
此致 苏拉杰
答案 0 :(得分:0)
假设两个端口都正确转发,Apache只监听端口80上的流量,而java只监听9000然后转到YourIp:80应该带你去apache和YourIP:9000带你去java应用程序
答案 1 :(得分:0)
对于PHP应用程序,通常会创建常见的 vhost ,对于Play应用程序创建反向代理vhost(使用其他域和/或子域),请查看samples in docs < / p>
LoadModule proxy_module modules/mod_proxy.so
...
<VirtualHost *:80>
DocumentRoot "/path/to/your/php/app/root/folder/"
ServerName your-php-app.com
ErrorLog "/path/to/apache/logs/folder/your-php-app.com-error_log"
CustomLog "/path/to/apache/logs/folder/your-php-app.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ServerName your-play-app.com
ProxyPass /excluded !
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
答案 2 :(得分:0)
感谢您的评论。
是的,我做了同样的事情。我只是将我的域名指向Apache Http服务器。所以它使用默认端口80并且不会显示在网址中。另外,我使用Apache作为前端服务器,用于我所有端口9000的请求。所以,我正在通过Apache端口80在端口9000上重新路由我对Play应用程序的请求。它需要更改url模式以便播放和apache特定的网址可以区分。
更改了网址并使用了proxy_http_module + ProxyPassMatch指令来重新路由工作。
苏拉杰