1、首页部分内容是从静态服务器上读取,所以里面很多的链接都是写死的,是80端口的,为了不让QA测试时再去手动修改成20080,所以需要自动将mall.alisoft.com:80/*自动跳转到20080,或者是mall直接支持80和20080端口;
2、旺旺浮出免登陆时由于IM客户端已经写死到aso.alisoft.com的端口也是80,所以mall和aso两个应用都需要用到80端口;
为了解决上述问题,可以有两种实现方式:
1、 直接在aso或者mall的httpd.conf中修改,修改方式如下:
1) 新增Listen 80
2) 新增 aso虚拟主机;注意:RewriteRule是被注释掉的,对aso.alisoft.com域名进入的直接转向jboss;
<VirtualHost * >
ServerAdmin sa@alibaba-inc.com
ServerName aso.alisoft.com
DocumentRoot "/home/admin/aep/aso/htdocs/"
RewriteEngine on
RewriteLogLevel 5
RewriteLog /home/admin/aep/aso/logs/rewrite.log
#RewriteRule ^/ http://aso.alisoft.com:30080/ [L,P]
</VirtualHost>
3) 新增 mall虚拟主机,让从mall.alisoft.com域名进入的转向20080,由于这里是服务器上的redirect,所以RewriteRule要设置成具体IP或者127.0.0.1,不能是域名;
<VirtualHost * >
ServerAdmin sa@alibaba-inc.com
ServerName mall.alisoft.com
DocumentRoot "/home/admin/aep/apps/htdocs/"
RewriteEngine on
RewriteLogLevel 5
RewriteLog /home/admin/aep/aso/logs/rewrite.log
RewriteRule ^/(.*)$ http://127.0.0.1:20080/$1 [L,P]
</VirtualHost>
4) 确认apache已经启用proxy模块,默认aso里面是不启用该module的;
LoadModule proxy_module /usr/ali/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/ali/apache2/modules/mod_proxy_http.so
2、 采用优雅的单独proxy方式:
由于方法1对原有系统aso或者是mall的apache配置侵入性很大,所以实现很不优雅,建议使用单独proxy方式;
这种方式需要单独设置一个apache,该apache专门监听80端口,然后在该模块中新增多个 虚拟主机 即可;比如以下新增一个aso的虚拟主机,然后把所有80端口的请求redirect到30080端口;
<VirtualHost * >
ServerAdmin sa@alibaba-inc.com
ServerName aso.alisoft.com
DocumentRoot "/home/admin/aep/aso/htdocs/"
RewriteEngine on
RewriteLogLevel 5
RewriteLog /home/admin/aep/aso/logs/rewrite.log
RewriteRule ^/(.*)$ http://127.0.0.1:30080/$1 [L,P]
</VirtualHost>