2
回答
nginx 反向代理不转换
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

由于在jsp中增加了basePath,访问时proxy_pass http://test; 中的test未能转换为相应的http://120.209.138.168:90/,使用httpwatch看到结果仍然是http://test/resources/css/login/starit.base.v1.0.css http://test/resources/css/login/login.css 之类的,未加basePath的项目,访问正常,用httpwatch能看出结果是http://120.209.138.168:90/resources/css/login/starit.base.v1.0.css 这样的,

下面是login.jsp 部分内容

String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><spring:message code="login.title" text="销售管家-登录" /></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<base href="<%=basePath%>" />
<link rel="icon" href="<%=basePath%>resources/img/favicon.ico" mce_href="<%=basePath%>resources/img/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="<%=basePath%>resources/img/favicon.ico" mce_href="<%=basePath%>resources/img/favicon.ico" type="image/x-icon" />
nginx 的配置如下

http {
    include       mime.types;
    default_type  application/octet-stream;
    access_log  logs/access.log;
    sendfile        on;
    keepalive_timeout  65;
    tcp_nodelay        on;   
    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    
    upstream test{
    ip_hash;
    server 120.209.131.143:9092;
    }
    server {
        listen  90;
        server_name  120.209.138.168;
        access_log  logs/host.access.log  ;


        location / {
           proxy_pass http://test;
        }
    }


   upstream test1{
    ip_hash;
    server 120.209.131.144:9092;
    }
    server {
        listen  91;
        server_name  120.209.138.168;
        access_log  logs/host.access.log  ;
        location / {
        proxy_pass http://test1;
        }

各位高手帮忙分析下如何解决这个问题,nginx如何配置能解决不能转换问题,如果改造代码的话,改动量太大,各位大侠帮帮忙!


举报
方平
发帖于5年前 2回/1K+阅
顶部