首页 > 代码库 > BasePath问题-nginx负载均衡配置

BasePath问题-nginx负载均衡配置

在配置nginx+tomcat好后,将项目添加到webapps中。发现访问主页时,css与js访问不到,导致主页布局出错。仔细分析原因后发现css与js的地址是basePath得出的。而basePath定义如下:

String basePath=request.getScheme() + request.getServerName()+request.getServerPort()+path;
其中

1、request.getScheme()返回协议的名称   http,和后面的"://" 拼起来就成了 http://
2、request.getServerName()这是获取你的服务器的名称3、request.getServerPort()是获取服务端口号
我在nginx定义了一个虚拟IP地址,而原来是这样的:

upstream test{        server 192.168.232.129:8080 weight=1;        server 192.168.232.130:8080 weight=1;        server 192.168.232.135:8080 weight=1;}
可是这样访问css会导致这样的地址:http://test/项目名/....css,由于是指向域名,因此在测试过程中域名没有,所以改成如下方式:

upstream 192.168.232.140{
        server 192.168.232.129:8080 weight=1;
        server 192.168.232.130:8080 weight=1;
        server 192.168.232.135:8080 weight=1;
}
通过上述改变可以达到访问的要求了,不过实际IP地址就暴露了,http://192.168.232.140/项目名/....css。因此如果在实际环境下,还需要改成域名。