"它适用于我的机器."
我有一个django应用程序.我按照本教程.OAuth2在我的开发框中运行良好,如下所示:
$ curl -v -H "Authorization: OAuth c52676b24a63b79a564b4ed38db3ac5439e51d47" http://localhost:8000/api/v1/my-model/?format=json
Run Code Online (Sandbox Code Playgroud)
我的本地开发应用程序找到了这行代码的标题:
auth_header_value = request.META.get('HTTP_AUTHORIZATION')
Run Code Online (Sandbox Code Playgroud)
但是当我将它部署到运行apache的ubuntu盒子时却没有.
我将以下内容添加到authentication.py文件中,以便检查远程计算机上日志中的值.
logging.error(request.GET)
logging.error(request.POST)
logging.error(request.META)
Run Code Online (Sandbox Code Playgroud)
输出中神秘地缺少标题值.所以我得到401s.
这似乎与子网/可用性区域有关,但我是新手使用VPC而且它是在逃避我.
VPC:10.80.0.0/16
子网:10.80.1.0/24(us-east-1b)
子网:10.80.2.0/24(us-east-1a)
所有实例都是Windows Server 2012.
我在我的VPC(10.80.0.0/16)内创建了面向ELB的互联网.从AZ us-east-1a添加了一个实例,它位于子网10.80.2.0/24上.该实例正在运行IIS 7.5,其中应用程序在端口80上运行,而/health.aspx设置为用作ELB运行状况检查.
VPC上的内部流量正常流动(不受限制).我可以从us-east-1b(10.80.1.0/24)中的另一个实例请求此实例的health.aspx.我也可以将文件从一个实例复制到另一个实例.
出站流量不受限制.我可以RDP到实例(当连接到我们的VPN时)并打开浏览器并请求网页并获取它.
ELB说实例是健康的,我可以在IIS日志中看到对health.aspx的请求.ELB和实例都配置了允许80和443的安全组.
但是,如果我尝试通过开放的互联网请求{elb-url} /health.aspx,请求就会超时.同样,使用与实例关联的弹性IP,对{elastic-ip} /health.aspx的请求超时.