对于RESTful客户机-服务器应用程序,使用CORS或nginx proxy_pass更好吗?

对于RESTful客户机-服务器应用程序,使用CORS或nginx proxy_pass更好吗?,proxy,cors,Proxy,Cors,我有一个客户机-服务器应用程序,其中服务器是一个RubyonRails应用程序,它呈现JSON并理解RESTful请求。它由nginx+乘客提供服务,地址是api.whatever.com 客户端是一个使用这些服务(whatever.com)的angular js应用程序。它由第二台nginx服务器提供服务,其地址为whatever.com 我可以使用CORS进行跨子域ajax调用,也可以配置客户端的nginx来代理请求到rails应用程序 对于开发者和服务器管理员来说,哪一个性能更好、麻烦更少

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

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

我可以使用CORS进行跨子域ajax调用,也可以配置客户端的nginx来代理请求到rails应用程序


对于开发者和服务器管理员来说,哪一个性能更好、麻烦更少?

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

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


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

我无法想象不代理怎么会比代理慢。问题的另一半是相当主观的。JSON内容类型的CORS将意味着飞行前的请求,这可能是一个昂贵的额外往返。这些额外请求的频率可以根据浏览器缓存飞行前结果的方式(默认情况下或通过访问控制最大年龄标题)而降低。因此,比较CORS和代理的性能不一定很简单。而且,OPTIONS请求本身不会抵消反向代理的开销吗?