在做Java服务器端开发的时候,一般都是用Nginx配合Tomcat使用,且静态资源交给Nginx来处理反回给客户端,而且一般的经验也是说Nginx在处理静态资源的时候要比Tomcat性能高好几倍,但是为什么会产生这样的差距,Nginx处理静态资源的原理是什么,高效的地方在哪里?
在做Java服务器端开发的时候,一般都是用Nginx配合Tomcat使用,且静态资源交给Nginx来处理反回给客户端,而且一般的经验也是说Nginx在处理静态资源的时候要比Tomcat性能高好几倍,但是为什么会产生这样的差距,Nginx处理静态资源的原理是什么,高效的地方在哪里?
8 回答6.4k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答2.4k 阅读✓ 已解决
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
通过socket发送一个文件流程大概如下:
Nginx通过open_file_cache可以减少重复打开文件,然后通过sendfile系统调用减少内核空间和用户空间间的内存复制,直接把文件内存写到socket,通过这些就能对单次返送进行优化。
再加上Nginx的高效的事件处理机制,就能支持高并发。