Nginx 作为反向代理的优化点(一)

使用 Java / Node.js / Go 等语言开发的 Web 服务通常会使用 Nginx 作为反向代理服务来实现负载均衡等功能,此时的 Web 服务相对于 Nginx 来说就是上游服务(upstream)。

一般在优化 Web 服务的性能时都会聚焦在 Web 服务本身,而容易忽视 Nginx 和上游服务之间的连接。Nginx 有很多带 proxy 前缀的指令,通常在配置反向代理时往往以为配置一个 proxy_pass 就完事了,但是在追求 Web 服务的极致性能时还有一些反向代理的配置能起到事半功倍的效果。本文将简单介绍 Nginx 作为反向代理时选择 HTTP 协议的版本。

阅读全文 »

OPTIONS 方法在跨域请求(CORS)中的应用

OPTIONS 方法比较少见,该方法用于请求服务器告知其支持哪些其他的功能和方法。通过 OPTIONS 方法,可以询问服务器具体支持哪些方法,或者服务器会使用什么样的方法来处理一些特殊资源。可以说这是一个探测性的方法,客户端通过该方法可以在不访问服务器上实际资源的情况下就知道处理该资源的最优方式。

既然比较少见,什么情况下会使用这个方法呢?

最近在做跨域文件上传的时候,浏览器会自动发起一个 OPTIONS 方法到服务器。

如果只是普通的 ajax 请求,也不会发起这个请求,只有当 ajax 请求绑定了 upload 的事件并且跨域的时候,就会自动发起这个请求。

阅读全文 »