首页 新闻 会员 周边

Nginx代理eureka管理页面报404

0
悬赏园豆:100 [已解决问题] 解决于 2019-11-17 11:22

eureka开启了安全认证,登录之后才能进入eureka的管理页面。当前可以通过IP+端口访问eureka,登录之后进入管理页面。

问题:
Nginx代理eureka之后,通过nginx访问eureka,可以进入到登录页面,但登录之后404。

过程如下:
1、通过nginx访问eureka,浏览器输入xxx.com/eureka,重定向xxx.com/login到登录页面

2、输入账号密码登陆后,表单提交到xxx.com/login,之后重定向到xxx.com/eureka,结果报404

Nginx location配置如下:

location  /eureka {

  proxy_pass  http://xx.xx.xx.xx:1111;    //ip:1111 ip为eureka服务器ip,1111为eureka端口
  proxy_set_header Host $host;
  proxy_set_header  X-Real-IP $remote_addr;
  proxy_set_header  REMOTE-HOST $remote_addr;
  proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

}

location /login {

  proxy_pass  http://xx.xx.xx.xx:1111;    //ip:1111 ip为eureka服务器ip,1111为eureka端口
  proxy_set_header Host $host;
  proxy_set_header  X-Real-IP $remote_addr;
  proxy_set_header  REMOTE-HOST $remote_addr;
  proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

}

请大神指条明路...

三石啊的主页 三石啊 | 初学一级 | 园豆:114
提问于:2019-11-10 12:06

建议您将代码部分使用代码块显示

hellotim 4年前

@hellotim: 好的:)

三石啊 4年前

@hellotim: 一直潜水... 自己写的时候才发现还是有很多格式问题哈.. 老哥再看看?

三石啊 4年前
< >
分享
最佳答案
0

试试这样的配置呢

server {
    server_name  xxxxx.xxx;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location / {
        proxy_pass   http://xx.xx.xx.xx:1111; 
        ....
    }
 }
收获园豆:100
ohyex | 小虾三级 |园豆:1496 | 2019-11-11 13:00

厉害!这个可行!
我把原来的两个location都给注释了,用你的方法是可以的。
但有个问题:
通过xxx.com直接访问就进入到eureka登录页面,这个时候登录之后成功跳转到eureka管理页面。
但如果我通过xxx.com/eureka访问,Nginx也会定向到eureka登录页面,这个时候登录,会跳转到xxx.com/eureka,接着就报404了
就是说,eureka每次登录之后,都会用之前的url来重定向...
但为啥老哥你的可以,我的就不行呢?而且实际这个域名和应用绑定了,location / 这种配置都会定向到应用页面,不会当做eureka的管理页面,这种情况该怎么办呢?烦请老哥指教

三石啊 | 园豆:114 (初学一级) | 2019-11-11 23:07

最终改为这样配置:

location  /eureka {

  proxy_pass  http://xx.xx.xx.xx:1111/;    //ip:1111 ip为eureka服务器ip,1111为eureka端口
  proxy_set_header Host $host;
  proxy_set_header  X-Real-IP $remote_addr;
  proxy_set_header  REMOTE-HOST $remote_addr;
  proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

}

location /login {

  proxy_pass  http://xx.xx.xx.xx:1111/login;    //ip:1111 ip为eureka服务器ip,1111为eureka端口
  proxy_set_header Host $host;
  proxy_set_header  X-Real-IP $remote_addr;
  proxy_set_header  REMOTE-HOST $remote_addr;
  proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

}

访问xx.com/eureka,重定向到xxx.com/login登录页面,登录完之后重定向到xxx.com,之后再访问xxx.com/eureka,就是eureka管理页面了..
里面的各种细节,我单独写个博客记录下吧..

三石啊 | 园豆:114 (初学一级) | 2019-11-17 11:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册