Ngnix被转换自定义HTTP代码502网关
问题描述:
应用程序堆栈:Ngnix被转换自定义HTTP代码502网关
- 框架:轨,5.1
- 反向代理:Nginx的,1.10.3
- 应用服务器:乘客,5.1.5
我有我的API仅在Ngnix反向代理后面运行的Rails 5应用程序。我的一些要求是有自定义http代码即。 2000,2003等。
但问题是,Ngnix正在将自定义响应从服务器转换为502并因此发送错误网关。我还没有发现任何有用的东西,但全部。任何指针应该被赞赏。谢谢。
的Nginx服务器块:
所有的server {
listen 80;
server_name sport-staging.sports.com;
passenger_enabled on;
passenger_app_env staging;
root /var/www/sport/current/public;
}
答
首先 - 你确定,与代码更改默认情况下,您的应用程序完美的作品没有任何问题?请仔细检查问题是否确定在自定义代码中。
我的意见是,你永远不应该定义任何类型的自定义HTTP代码。如果你有这样的需求,那么在99.99%你做错了什么。想想,这个应用程序将在未来由其他开发人员处理。他们如何理解2003年的代码是什么意思?
我的建议是,然后寻找一个nginx黑客或更改它的设置,你应该更好地标准化你的应用程序。现有的HTTP代码已经足够处理任何事情。
另外,作为一种解决方案,您可以针对此目的使用针对JSON的特定应用程序代码。
我已经与另一个团队讨论过自定义代码,但他们坚持不懈。所以不能帮助。显然,我正在抓Nginx文档来帮助解决这个问题。不管怎么说,还是要谢谢你。 – Sachin
@Sachin我很难过听到这个消息。向他们展示您的主题:D – AntonTkachov
我可以做的最后一件事是在我的应用程序中创建图层,以将其他团队的自定义代码映射到标准http代码,然后针对涉及这些代码的每个请求执行相应操作。 – Sachin