单台web服务器如何尽可能的提高网站性能

 更新时间:2014年06月19日 09:52:56   投稿:hebedich  
一个网站,对于个人或小公司来说,前期直接上集群的开销是比较大的,那么采用单台服务器如何才能尽可能的提高网站效率呢?

我觉得首先要选择一个合适的环境,对于大多数php站点来说,运行在lnmp(linux+nginx+mysql+php)环境下是个理想的选择.

首先一点linux对比win的优势我就不说了。

其次nginx的优势总结起来就是负载均衡,高并发性能优异。

这里php采用fastcgi的方式接入nginx,php5.3 自带的php-fpm已经很好了,相比于apache的php模块方式,这里由php自己直接处理php请求是比较好的,并且可调控进程数量以优化并发性能。

上面说的是基本环境,我有一台q6600的老四核,4G内存的linux服务器,上面跑了几十个站点,最高跑到90M带宽,成功hold住!

下面说说程序方面的优化。

我们知道,静态页面的速度比动态页面要快,尤其是在nginx下,静态页面直接由nginx提供服务,性能尤其高。而动态页面,虽然fastcgi也很好,但是相比于nginx直接处理静态页面,还是有点差距的。

这里介绍两个好东西,一个是nginx自身的缓存功能proxy_cache和fastcgi_cache,然后还有一个nginx模块ngx_cache_purge用于清理指定url的缓存。

这里单台服务器我们主要使用的是fastcgi_cache,可以指定的url下,将php脚本的执行结果缓存到磁盘和内存上,并可以指定过期时间,第二次访问的时候,由nginx直接取缓存文件,就相当于静态页面了,效率当然很高。

说完nginx再说说php,nginx用于缓存整个页面,而有的页面我们不需要缓存全部,只需要缓存一些短数据,比如一些数组,访问记录之类的临时新内容。传统的php是直接采用文件式缓存,就像dedecms里data/cache目录,里面存放的就是很多缓存文件,主要是用来避免频繁的数据库查询。一般情况下,文件缓存也够了,但是要追求极致,尤其是高并发下,不如试试memcached吧,很好的一个东西,作用是将一些字符串以键值对的形式存放到服务器内存中,指定过期时间,下次用的时候直接从内存中取,不消耗磁盘I/O,速度也不是一个级别的,原理和文件缓存一样。

暂时能想到的就是这么多,其实主旨就是一个:缓存。只是缓存的方式不同罢了。那么如何选择合适的缓存方式,就是我们开发人员需要考虑的事情了。

相关文章

  • nginx的location的优先级和匹配方式

    nginx的location的优先级和匹配方式

    location是Nginx中的块级指令,本文主要介绍了nginx的location的优先级和匹配方式,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • nginx限制IP恶意调用短信接口处理方法

    nginx限制IP恶意调用短信接口处理方法

    这篇文章主要介绍了nginx限制IP恶意调用短信接口处理方法,一种是nginx黑名单方式,另一种是限制IP请求数。需要的朋友可以参考下
    2018-06-06
  • Nginx中配置WebSocket代理的详细步骤

    Nginx中配置WebSocket代理的详细步骤

    Nginx 可以配置为 WebSocket 代理,将 WebSocket 连接从客户端转发到后端服务器,以下是如何在 Nginx 中配置 WebSocket 代理的详细步骤和示例配置,需要的朋友可以参考下
    2025-02-02
  • 浅谈Nginx是如何解决惊群效应的

    浅谈Nginx是如何解决惊群效应的

    惊群效应是Nginx在处理大量并发连接时可能出现的一个性能问题,本文主要介绍了浅谈Nginx是如何解决惊群效应的,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • Nginx+Tomcat反向代理与负载均衡的实现

    Nginx+Tomcat反向代理与负载均衡的实现

    这篇文章给大家详细介绍了如何实现Nginx+Tomcat反向代理与负载均衡,文中的流程步骤介绍的非常详细对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-07-07
  • 18个运维必知的Nginx代理缓存配置技巧(你都掌握了哪些呢)

    18个运维必知的Nginx代理缓存配置技巧(你都掌握了哪些呢)

    这篇文章主要介绍了18个运维必知的Nginx代理缓存配置技巧(你都掌握了哪些呢),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • nginx lua集成kafka的实现方法

    nginx lua集成kafka的实现方法

    这篇文章主要介绍了nginx lua集成kafka的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • nginx 如何配置文件上传大小

    nginx 如何配置文件上传大小

    这篇文章主要介绍了nginx 如何配置文件上传大小,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • 部署Kibana及nginx代理访问环境方式

    部署Kibana及nginx代理访问环境方式

    在elk-node03节点上部署Kibana并使用Nginx进行代理访问和权限控制,配置多个端口的Kibana,每个系统单独开一个端口,并通过Nginx做代理访问配置,每个系统的业务日志在对应的端口Kibana界面展示,配置Nginx反向代理及访问验证,包括设置虚拟主机和验证文件
    2024-11-11
  • nginx location优先级的深入讲解

    nginx location优先级的深入讲解

    这篇文章主要给大家介绍了关于nginx location优先级的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论