使用django-rest-framework。在nginx後面的生產環境中運行時出現HTTP 403錯誤。當我打電話的特定視圖,從APIView繼承支持GET操作,我得到:django rest框架在nginx後面給出403但不是直接使用
{"detail": "Invalid username/password"}
但是......我只得到這個在瀏覽器中。當我使用curl來訪問相同的URL時,我不明白。無論是直接點擊網址還是通過AJAX加載網址,Chrome和Firefox都會出現此錯誤。
如果我先通過管理員帳戶通過Django Admin登錄,則不會收到錯誤消息。
此外,我只得到這是我從後面nginx運行。如果我使用Django dev服務器或gunicorn運行,並直接點擊端口,那麼我很好,並且可以高興地匿名訪問URL。如果我把nginx放在這個前面,轉發到相同的gunicorn/runserver,我得到這個錯誤。
也許這與我的nginx proxy_pass設置有關?
location/{
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
我正在運行django rest framework 2.2.6,Django 1.5和nginx 1.2.7。
我在rest框架中設置了一個愚蠢的高數字,並查看了默認情況下似乎打開的所有權限(但也設置爲如此明確)。
任何人都可以指向正確的方向嗎?
謝謝!
魯多。
django-rest-framework的認證設置是什麼? – iMom0
我只是使用默認設置,看起來合適。 – Ludo