2017-07-05 52 views
0

我使用nginx,gunicorn,django作爲後端。我在django中創建了apis,並且這些apis對postman甚至我的python代碼都適用。但是,當我嘗試從代理服務器訪問API時,它會給我'無法通過代理隧道。代理返回 「HTTP/1.1 407 authenticationrequired。」」爲什麼我要代理返回「HTTP/1.1 407 authenticationRequired」?

這裏是我的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; 
    } 
} 

這裏是我的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; 
} 

我的API的形式爲https://www.mywebsite.in/py/api/main

請幫助我,我哪裏出錯了。

+0

其在配置位置上方是API? –

+0

編輯帖子,請檢查! –

+0

你有任何形式的身份驗證http:// localhost:8000 /?首先,你可以訪問http:// localhost:8000 /沒有問題嗎? –

回答

0

集配置如下面在/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

同樣的問題! –

相關問題