2017-11-11 284 views
0

我在nginx代理下的oAuth重定向时遇到问题。我在我的网站上有Google社交登录按钮,并且在本地运行良好。当我在线上传我的项目时,我把它放在nginx代理下,它不再工作。当我点击登录时,浏览器将我重定向到localhost:3000/auth/google/callback而不是mywebpage.com/auth/google/callback,告诉我该页面不存在。
我知道这个问题:Nginx proxy with Google OAuth 2.0和我试图使用他们建议的修复程序,但他们没有工作,因为我不运行流星,但与Nginx代理Express上的NodeJS。
他们建议的第二种解决方案是使用proxy_redirect,但它似乎不起作用。我有一个与谷歌oAuth,但每次我点击它(这是一个浏览器重定向,而不是一个弹出)它将我重定向到本地主机:3000这是代理服务器后面的网址。
我尝试了proxy_redirect的所有可能的配置,但它总是将我重定向到那里。这是我在nginx中的代理部分:NodeJS oAuth Google Nginx代理

location/{ 
    proxy_pass http://127.0.0.1:3000; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection 'upgrade'; 
    proxy_set_header Host $host; 
    proxy_cache_bypass $http_upgrade; 
    proxy_redirect http://localhost:3000 https://mywebsite.com; 
} 

任何建议吗?

回答

0

你把这里面的服务器块?

server { 
    listen 80; 
    server_name example.com; 
    location/{ 
     proxy_pass http://127.0.0.1:3000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
} 

尝试删除proxy_redirect。我不认为你可以代理从http到https或https到http。据我所知,协议需要保持不变。