2017-07-05 2 views
0

J'utilise nginx, gunicorn, django pour backend. J'ai créé des apis dans django, et ces apis fonctionnent bien pour moi de facteur et même de mon code python. Mais quand j'essaie d'accéder à l'API du serveur proxy, il me donne 'Impossible de passer au tunnel par proxy. Proxy retourne "HTTP/1.1 407 authenticationrequired." »Pourquoi est-ce que le proxy me renvoie "HTTP/1.1 407 authenticationrequired"?

Voici mes paramètres nginx:

server { 
    listen 80; 
    server_name mywebsite.in; 
    return 301 https://$host$request_uri; 
} 

server { 
    listen 80; 
    server_name www.mywebsite.in; 
    return 301 https://$host$request_uri; 
} 

server { 
    listen 443 ssl ; 
    server_name mywebsite.in ; 
    ssl_certificate /root/mywebsite.in.crt; 
    ssl_certificate_key /root/mywebsite.in.key; 

    #FOR SERVING HTML PAGES 
    root /root/front/mywebsite ; 
    index index.html index.php; 

    location /py/ { 

     include proxy_params; 
     proxy_set_header X-Forwarded-Protocol https ; 
     proxy_ssl_session_reuse off; 
     # proxy_ssl_certificate /root/mywebsite.in.crt; 
     # proxy_ssl_certificate_key /root/mywebsite.in.key; 
     # proxy_ssl_client_certificate /root/intermediate.crt; 
     # proxy_ssl_verify off; 

     proxy_pass http://localhost:8000/ ; 
    } 

    location /blog/ { 
    proxy_pass https://mywebsitein.blogspot.in/; 
    } 

    location /upload { 
    # auth_basic     "Restricted Upload"; 
    # auth_basic_user_file  basic.htpasswd; 
    limit_except POST   { deny all; } 

    client_body_temp_path  /tmp/$request_body_file; 
    client_body_in_file_only on; 
    client_body_buffer_size 128K; 
    client_max_body_size  1000M; 

    proxy_pass_request_headers on; 
    proxy_set_header   X-FILE $request_body_file; 
    proxy_set_body    off; 
    proxy_redirect    off; 
    proxy_pass     http://localhost:8000/file; 
    } 
} 

Voici mon nginx.conf

user www-data; 
worker_processes 4; 
pid /run/nginx.pid; 

events { 
    worker_connections 768; 
    # multi_accept on; 
} 

http { 

    ## 
    # Basic Settings 
    ## 

    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 
    proxy_read_timeout 1200; 
    # server_tokens off; 

    # server_names_hash_bucket_size 64; 
    # server_name_in_redirect off; 
    expires 1h; 
    add_header Cache-Control no-cache; 
    include /etc/nginx/mime.types; 
    default_type application/octet-stream; 

    ## 
    # Logging Settings 
    ## 

    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    ## 
    # Gzip Settings 
    ## 

    gzip on; 
    gzip_disable "msie6"; 
    gzip_vary on; 
    gzip_proxied any; 
    gzip_comp_level 6; 
    gzip_buffers 16 8k; 
    gzip_http_version 1.1; 
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon application/javascript; 
} 

Mon API est de la forme https://www.mywebsite.in/py/api/main

S'il vous plaît aidez-moi, où je me trompe.

+0

quel endroit dans la configuration ci-dessus est le api? –

+0

Modifié le message, s'il vous plaît vérifier !! –

+0

Avez-vous une quelconque forme d'authentification sur http: // localhost: 8000 /? Tout d'abord, pouvez-vous accéder à http: // localhost: 8000/sans problème? –

Répondre

0

Set config comme ci-dessous pour /py

location /py { 


     port_in_redirect off; 
     proxy_redirect off; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

     proxy_pass http://localhost:8000; 
    } 
+0

Encore une fois le même problème !! –