【发布时间】:2020-12-18 04:07:30
【问题描述】:
使用 Nginx 作为反向代理,使用 facebook 的身份验证无法正常工作。
我的 proxy_pass 设置为 origin.example.com,主站点位于 main.example.com。
proxy_pass https://origin.example.com;
proxy_ssl_server_name on;
proxy_set_header Connection "";
proxy_set_header Host origin.example.com;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
使用我要修改的 Location 标头进行 facebook 登录重定向,我发现它可以使用 proxy_redirect 完成。但是,我不知道该怎么做。
我已经在 Facebook 中使用了重定向 URI main.example.com。而且我确实已经请求在源应用程序中进行另一个更改以进行此更改,但是它不在我们的控制范围内,并且必须通过仅从 nginx 修改此标头值来管理它。
具体来说,我想修改这个header值
到
我想在 Location 标头中将 origin.example.com 的所有实例替换为 main.example.com。
这是我的服务器块配置
server {
listen [::]:80;
listen 80;
server_name main.example.com;
return 301 https://www.$host$request_uri;
}
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
server_name main.example.com;
proxy_set_header Accept-Encoding "";
sub_filter_types *;
sub_filter_once off;
sub_filter "http:" "https:";
include https.conf;
}
【问题讨论】:
-
你能添加一个 NGINX 配置的例子,以确定你想要什么吗?如果不是太麻烦,也许是一个小图?
-
@TravisSpencer 谢谢,添加了相同的内容。我希望这有助于理解。