我在3000端口运行了一个应用程序。
此应用正在反向代理背后工作,例如:
server {
listen 80;
server_name myapp;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
所以,每次我访问我的网站时,它都会从本地主机端口3000中获取内容,并且工作正常。
问题出在auth0身份验证之后,当用户通过身份验证后,它会一直重定向到localhost:3000 /#,我该如何让它工作到localhost?
这是我的Nginx配置文件:
server {
listen 80;
server_name myapp;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
location /generic_oauth/ {
proxy_pass http://127.0.0.1:3000;
}
}
回调是localhost/login/generic_oauth
我的auth0设置回调是:http://localhost:3000/login/generic_oauth
如果我将auth0回调更改为http://localhost/login/generic_oauth
得到了错误:
抱歉我的英文不好
答案 0 :(得分:1)
应用程序必须知道在它发出的URL上使用哪个域名。 nginx可能还需要做一些重写。
按照此处的说明添加X-Forwarded-Host标头,可能还有proxy_redirect指令
https://www.nginx.com/resources/wiki/start/topics/examples/likeapache/
答案 1 :(得分:0)
127.0.0.1
是环回地址(也称为 localhost)。
0.0.0.0
是不可路由的元地址,用于指定无效、未知或不适用的目标(“无特定地址”占位符)。