2017-11-11 1 views
0

nginxプロキシでoAuthリダイレクトに問題があります。私は自分のウェブサイトにGoogleのソーシャルログインボタンを持っており、ローカルではうまくいきます。私は自分のプロジェクトをオンラインでアップロードし、それをnginxプロキシの下に置くと、もう動作しません。私がログインをクリックすると、ブラウザはmywebpage.com/auth/google/callbackの代わりにlocalhost:3000/auth/google/callbackにリダイレクトされ、そのページが存在しないことを伝えます。
私はこの質問を承知しています:Nginx proxy with Google OAuth 2.0と私は彼らが示唆した修正を使用しようとしましたが、MeteorではなくNodeJSをNginx ProxyでExpress上で実行しているため動作しませんでした。
彼らが提案する2番目の解決策は、proxy_redirectを使用することですが、動作していないようです。私はGoogleとoAuthを持っているが、私はそれをクリックするたびに(ブラウザのリダイレクト、ポップアップではない)、プロキシの背後にあるURLであるlocalhost: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への代理をすることはできないと思う。私が知る限り、プロトコルは同じままにする必要があります。