2017-10-13 50 views
0

应用程序堆栈: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; 
} 

回答

0

首先 - 你确定,与代码更改默认情况下,您的应用程序完美的作品没有任何问题?请仔细检查问题是否确定在自定义代码中。

我的意见是,你永远不应该定义任何类型的自定义HTTP代码。如果你有这样的需求,那么在99.99%你做错了什么。想想,这个应用程序将在未来由其他开发人员处理。他们如何理解2003年的代码是什么意思?

我的建议是,然后寻找一个nginx黑客或更改它的设置,你应该更好地标准化你的应用程序。现有的HTTP代码已经足够处理任何事情。

另外,作为一种解决方案,您可以针对此目的使用针对JSON的特定应用程序代码。

+0

我已经与另一个团队讨论过自定义代码,但他们坚持不懈。所以不能帮助。显然,我正在抓Nginx文档来帮助解决这个问题。不管怎么说,还是要谢谢你。 – Sachin

+0

@Sachin我很难过听到这个消息。向他们展示您的主题:D – AntonTkachov

+0

我可以做的最后一件事是在我的应用程序中创建图层,以将其他团队的自定义代码映射到标准http代码,然后针对涉及这些代码的每个请求执行相应操作。 – Sachin