Django API 在本地工作,但部署在 Elastic Beanstalk 上时无法工作

rus*_*ord 5 django amazon-web-services jwt django-rest-framework

我正在使用Django Rest FrameworkDjango Rest Framework JWT,但我遇到了有关本地行为与外部行为的问题。

当我请求POST获取 JWT 令牌时,本地和我的 EC2 实例上的一切都按预期工作。但是,一旦我有了令牌,当我向需要身份验证的服务器发出请求时,只有我的本地服务器返回预期的响应。在我部署的服务器上,我收到以下错误:

{"detail":"Authentication credentials were not provided."}

到目前为止我尝试过的:

http.conf通过 sshing 进入我的服务器并启用WSGIPathAuthorization. (在这里看到类似的帖子并尝试了解决方案)

什么可能导致这种行为?我的本地计算机和我部署的代码是相同的,这让我相信这与服务器端配置有关。

感谢所有帮助。谢谢!

Ent*_*tin 5

您提到了 ElasticBeanstalk。

您可以将其添加到将在部署期间执行的容器命令中。

01_wsgipass:
 command: 'echo "WSGIPassAuthorization On" >> ../wsgi.conf'
Run Code Online (Sandbox Code Playgroud)


rus*_*ord 1

只需在启用 WSGPPathAuthorization 后重新启动 Apache 即可修复我的错误。对于那些遇到类似情况的人,这就是我所做的:

  1. 通过 SSH 连接到服务器

  2. 导航到http.conf文件的存储位置(在 Apache 中,这通常是 etc/httpd/http.conf

  3. 编辑http.conf、添加WSGIPathAuthorization On

  4. 通过运行重新启动 Apache sudo service httpd restart