前言:最近公司使用springBoot框架做一个项目。然后没有项目名。直接是8081端口访问。www.smadmin.com:8081/login.html,这样就能直接访问。现在老大希望不要有8081,后面加一个指定路径,www.smadmin.com/manage,这样去访问项目。
然后我在 nginx 做了如下配置:server{
      
            listen :80;
            server_name : www.smadmin.com;
           
    location /manage {
        proxy_pass  http://127.0.0.1:8081/login.html;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
   }
  }
但是在访问的时候,登陆页面上的验证码确是直接访问www.smadmin.com/image/cheack/,这样没法访问直接报404.应该是www.smadmin.com:8081/image/cheack/。这样才能获取验证码。所有的请求都是没有带8081.而是走的默认的80端口。然后百度大家说
在这一行proxy_set_header   Host             $host做修改。 什么, $host:8081,$host:$server_port等等。都不行,还是走的默认的80端口。
求助各位大佬帮帮忙

解决方案 »

  1.   

            proxy_pass  http://127.0.0.1:8081/login.html;
    改成        proxy_pass  http://127.0.0.1:8081/
    访问的时候
    www.smadmin.com/login.html 试试
      

  2.   

    改成这样,页面上就直接报404 Not Found。不改之前还能出现登录页面
      

  3.   

    改成这样,页面上就直接报404 Not Found。不改之前还能出现登录页面
    location /
            proxy_pass  http://127.0.0.1:8081/login.html;
    改成
            proxy_pass  http://127.0.0.1:8081访问的时候
    www.smadmin.com/login.html 
    试试这个