2013-07-08 5 views
1

У меня есть настройка приложения django на сервере-пулемете, который проксируется nginx (также используется для статических файлов), а nginx «перехватывает» запрос GET с кодом учетных данных из Google! Почему nginx крадет запрос, а не передает его на пушку, чтобы ее обрабатывали?nginx перехват google oauth redirect

здесь моя информация апи для моего веб-приложения:

Client ID: 
67490467925-v76j4e7bcdrps3ve37q41bnrtjm3jclj.apps.googleusercontent.com 
Email address: 
[email protected]ccount.com 
Client secret: 
XquTw495rlwsHOodhWk 
Redirect URIs: http://www.quickerhub.com 
JavaScript origins: https://www.quickerhub.com 

и вот запрос идеальный GET быть украденным Nginx:

http://www.quickerhub.com/?code=4/bzqKIpj3UA3bBiyJfQzi3svzPBLZ.QoB_rXWZ6hUbmmS0T3UFEsPMOFF4fwI

и, конечно, сладкий Nginx дает мне «Добро пожаловать в nginx!» страница ...

Есть ли способ сказать nginx передать эти запросы на пушки? Или я делаю что-то неправильно?

Спасибо!

NGINX ВХост конфигурации:

upstream interest_app_server { 
    # fail_timeout=0 means we always retry an upstream even if it failed 
    # to return a good HTTP response (in case the Unicorn master nukes a 
    # single worker for timing out). 

    server unix:/webapps/hello_django/run/gunicorn.sock fail_timeout=0; 
} 

server { 

    listen 80; 
    server_name quickerhub.com; 

    client_max_body_size 4G; 

    access_log /webapps/hello_django/logs/nginx-access.log; 
    error_log /webapps/hello_django/logs/nginx-error.log; 

    location /static { 
     root /webapps/hello_django/interest/; 
    } 

    location /media { 
     root /webapps/hello_django/interest/; 
    } 

    location /static/admin { 
     root /webapps/hello_django/lib/python2.7/site-packages/django/contrib/admin/; 
    } 

    location/{ 
     # an HTTP header important enough to have its own Wikipedia entry: 
     # http://en.wikipedia.org/wiki/X-Forwarded-For 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

     # enable this if and only if you use HTTPS, this helps Rack 
     # set the proper protocol for doing redirects: 
     # proxy_set_header X-Forwarded-Proto https; 

     # pass the Host: header from the client right along so redirects 
     # can be set properly within the Rack application 
     proxy_set_header Host $http_host; 

     # we don't want nginx trying to do something clever with 
     # redirects, we set the Host: header above already. 
     proxy_redirect off; 

     # set "proxy_buffering off" *only* for Rainbows! when doing 
     # Comet/long-poll stuff. It's also safe to set if you're 
     # using only serving fast clients with Unicorn + nginx. 
     # Otherwise you _want_ nginx to buffer responses to slow 
     # clients, really. 
     # proxy_buffering off; 

     # Try to serve static files from nginx, no point in making an 
     # *application* server like Unicorn/Rainbows! serve static files. 
     if (!-f $request_filename) { 
      proxy_pass http://interest_app_server; 
      break; 
     } 
    } 

    # Error pages 
    error_page 500 502 503 504 /500.html; 
    location = /500.html { 
     root /webapps/hello_django/interest/templates/; 
    } 
} 
+2

Чувак. См. Ту часть, которая гласит «Клиентская тайна»? это должно быть ** секретным ** – Thomas

+0

Кроме того, отправляйте свою конфигурацию nginx для этого vhost, глупо. – Thomas

+0

Я ценю помощь, но я удалил около 12 символов из тайны, заметьте, что она немного короткая (; добавлена ​​конфигурация!) – ljrh

ответ

5

у вас есть

server_name quickerhub.com; 

запрос прибудете возвращается к

http://www.quickerhub.com/?code=4/bzqKIpj3UA3bBiyJfQzi3svzPBLZ.QoB_rXWZ6hUbmmS0T3UFEsPMOFF4fwI 

quickerhub.com = www.quickerhub.com и так Nginx падает через служить! страницу по умолчанию (когда он не может найти vhost).

все, что вам нужно сделать, это использовать

server_name www.quickerhub.com quickerhub.com; 

или даже лучше, добавьте это к «canonicalise» все URLs версии без WWW.

server { 
    server_name www.quickerhub.com; 

    expires epoch; 
    add_header Cache-Control "no-cache, public, must-revalidate, proxy-revalidate"; 
    rewrite^http://quickerhub.com$request_uri permanent; 
} 
+0

, который сделал это (: спасибо – ljrh