小编ex-*_*erd的帖子

如何从应用程序中识别heroku dyno号码?

有没有办法从应用程序中识别heroku dyno名称(例如web.1,web.2)?我希望能够生成一个唯一的请求ID(例如,跟踪web和worker dynos之间的请求,以便整合请求堆栈的整合记录),在我看来,dyno标识符将成为一个不错的起点.

如果无法做到这一点,是否有人有后备建议?

heroku

12
推荐指数
2
解决办法
5020
查看次数

PHP(Apache)静默地将HTTP 429和其他转换为500

我刚刚在PHP的header()方法中发现了一个奇怪的地方,默默地将我的一些状态转换为500.由于我在各种网络搜索中没有找到提及这种行为的运气,我在这里添加它是为了拯救他人一些恶化,还要询问是否有人发现了一个比我想出的更好的解决方法(使用PHP或Zend1).

给出一个简单的PHP脚本,如:

<?php
header('HTTP/1.1 429');
echo "Too Many Requests\n";
Run Code Online (Sandbox Code Playgroud)

我希望得到类似的东西:

HTTP/1.1 429
Date: Thu, 18 Jul 2013 22:19:45 GMT
Content-Length: 11
Content-Type: text/html; charset=UTF-8

Too Many Requests
Run Code Online (Sandbox Code Playgroud)

相反,它实际上返回:

HTTP/1.1 500 Internal Server Error
Date: Thu, 18 Jul 2013 22:19:45 GMT
Content-Length: 11
Content-Type: text/html; charset=UTF-8

Too Many Requests
Run Code Online (Sandbox Code Playgroud)

除此之外,我的apache错误日志中没有事件,访问日志显示正确的状态代码(因此与发送到浏览器的内容不同):

$IP - - [18/Jul/2013:16:31:34 -0700] "GET /test/429.php HTTP/1.1" 429 11 "-" "curl/7.30.0"
Run Code Online (Sandbox Code Playgroud)

使用许多其他状态代码(如401,420,426)进行测试时,一切正常.

如果我是明确的并发送标题('HTTP/1.1 429 Too Many Requests'),一切也可以正常工作; 这将是一个有用的解决方法,除了我使用Zend Framework并且其setHttpResponseCode方法需要一个整数,它用作php的header()函数的第三个参数.

我已经发现它似乎特别适用于RFC 6585中添加的状态(请参阅https://github.com/php/php-src/pull/274),尽管我有点困惑为什么像426这样的状态工作当他们显然没有出现在5.4.14和5.4.16的源代码中(我测试过的两个版本),但是像429这样的非功能性版本.

更新:

正如答案所示,这主要是Apache问题,而不是PHP,我已相应更新了标题.最有趣的似乎是,这仅在某些版本的Apache中得到修复(旧版和新版之间没有明显的一致性).我相信有问题的上游问题在这里:https://issues.apache.org/bugzilla/show_bug.cgi?id = 44995

php apache http-headers http-status-code-429

10
推荐指数
1
解决办法
2994
查看次数

用于RDS快照管理的AWS/IAM策略?

我正在编写一个脚本,每天自动获取一个RDS快照,并根据适当的模式为其命名(例如mydb-snapshot-20141031).脚本本身非常简单,但是我遇到了试图锁定问题的问题,这样如果与脚本关联的密钥对遭到破坏,攻击者只会损坏我的快照,而不会损坏数据库本身.

搜索网络并查看RDS IAM政策指南并没有太多帮助我(至少不是我能够复制)所以我​​希望有人在此之前解决了这个问题(或者可以理解该手册)比我更好.这就是我想要的:

  • 创建名为"mydb"的数据库实例的快照的权限
  • 写入与mydb-snapshot-*匹配的快照的权限
  • 删除与mydb-snapshot-*匹配的快照的权限

这是我想要防范的:

  • 我不希望此用户能够与RDS之外的AWS的任何部分进行交互
  • 我不希望这个用户能够真正改变我的任何RDS实例,包括"mydb"
  • 我不希望此用户能够更改与mydb-snapshot-*匹配的快照

也许这不可能完成(我找不到rds的"删除"伴随文档:CreateDBSnapshot策略).如果DeleteDBSnapshot文档实际包含使用它所需的权限列表,那将是很好的.

amazon-web-services amazon-rds amazon-iam

6
推荐指数
1
解决办法
2100
查看次数