Nginx对静态文件处理性能高的原理?

在做Java服务器端开发的时候,一般都是用Nginx配合Tomcat使用,且静态资源交给Nginx来处理反回给客户端,而且一般的经验也是说Nginx在处理静态资源的时候要比Tomcat性能高好几倍,但是为什么会产生这样的差距,Nginx处理静态资源的原理是什么,高效的地方在哪里?

阅读 4k
1 个回答

通过socket发送一个文件流程大概如下:

  1. 打开文件
  2. 把文件数据读到内存
  3. 把内存里的数据写到socket

Nginx通过open_file_cache可以减少重复打开文件,然后通过sendfile系统调用减少内核空间和用户空间间的内存复制,直接把文件内存写到socket,通过这些就能对单次返送进行优化。

再加上Nginx的高效的事件处理机制,就能支持高并发。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题