将 CORS 或 nginx proxy_pass 用于 RESTful 客户端 - 服务器应用程序是否更好?

Raf*_*ega 5 proxy cors

我有一个客户端 - 服务器应用程序,其中服务器是一个 Ruby on rails 应用程序,它呈现 JSON 并理解 RESTful 请求。它由 nginx+passenger 提供,它的地址是 api.whatever.com。

客户端是一个使用这些服务的 Angular js 应用程序(whatever.com)。它由第二个 nginx 服务器提供服务,它的地址是whatever.com。

我可以使用 CORS 进行跨子域 ajax 调用,也可以将客户端的 nginx 配置为向 rails 应用程序发送 proxy_pass 请求。

哪一个在性能和开发人员和服务器管理员的麻烦方面更好?

Hon*_*gli 4

除非您是 Facebook,否则您不会注意到额外的反向代理对性能造成任何影响。开销很小。它基本上是解析一堆字节,然后通过本地套接字将它们发送到另一个进程。Nginx 中的反向代理很容易设置,不太可能成为管理负担。

您应该更多地担心浏览器支持。几乎所有浏览器都支持 CORS,当然 Internet Explorer 和某些移动浏览器除外。

Juvia使用 CORS,但回退到 JSONP。没有反向代理设置。