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

我觉得首先要选择一个合适的环境,对于大多数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,速度也不是一个级别的,原理和文件缓存一样。

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

时间: 2024-10-22 22:49:28

单台web服务器如何尽可能的提高网站性能_nginx的相关文章

wi-fi-如何通过局域网内笔记本发射的WiFi连接到该局域网内的一台web服务器上

问题描述 如何通过局域网内笔记本发射的WiFi连接到该局域网内的一台web服务器上 单位的局域网内,怎么通过手机连接的局域网内笔记本发射的WiF,连接到另一个局域网内的一台web服务器上,笔记本所在的局域网与web服务器的局域网是用两个不同的路由器. 我的笔记本是直接可以ping通那台服务器的,但是怎样才能从我笔记本发射的wifi用手机连接上那台服务器呢? 解决方案 建议你将笔记本(可以ping通那台服务器)上的WIFI加载为WIFI AP端(好像360里有这样的软件),这样你的手机连接到这个笔

多台Web服务器做负载均衡解决方案

环境说明: 开发平台是DO.NET B/S .NET Framework 1.1 正式WEB服务器和测试机,均为win2003 原有一个主网站,在六台WEB服务器做负载均衡.运行比较稳定. 现新开发一个子站,将布署在另三台WEB服务器上做负载均衡.这个负载均衡设置类似主网站的设置. 解决步骤: 1)子站在测试机测试通过,运行正常.准备布署到正式环境下(三台WEB服务器) 2)将子站程序拷贝到那三台WEB服务器上,配置好子站相关配置,开放站点与负载均衡开始测试. 3)测试时,页面显示正常,但在触发

域名到多台Web服务器

问题描述 aa.bb.com这样的域名怎么实现转发到多台Web服务器的呢.在注册域名的时候能指定多个IP吗.aa.bb.com这样的二级域名可以分别指定吗.对域名到实际IP的过程,看了一些资料还是很迷惑,哪位能说明一下原理吗. 解决方案 解决方案二:一个域名可以配置多个二级域名每个二级域名可以指定到不同的服务器首先要搞清楚域名和网址解决方案三:貌似是和集群相关的,应该有相关的配置文件指定吧域名指定多个ip,类似于备用ip

提高网站性能中网站服务器的改进

在本系列的第一节中,讲了 提高网站性能中网站"内容"有关的10条原则 .除了在网站在内容上的改进外,在网站服务器端上也有需要注意和改进的地方,它们包括: 使用内容分发网络 为文件头指定Expires或Cache-Control Gzip压缩文件内容 配置ETag 尽早刷新输出缓冲 使用GET来完成AJAX请求 11.使用内容分发网络 用户与你网站服务器的接近程度会影响响应时间的长短.把你的网站内容分散到多个.处于不同地域位置的服务器上可以加快下载速度.但是首先我们应该做些什么呢? 按地

提高网站性能中内容有关的10条原则

英文地址:http://developer.yahoo.com/performance/rules.html Yahoo!的Exceptional Performance团队为改善Web性能带来最佳实践.他们为此进行了一系列的实验.开发了各种工具.写了大量的文章和博客并在各种会议上参与探讨.最佳实践的核心就是旨在提高网站性能. Excetional Performance团队总结出了一系列可以提高网站速度的方法.可以分为7大类34条.包括内容.服务器.cookie.CSS.JavaScript.

JavaScript和CSS的优化提高网站性能

      在第一部分和第二部分中我们分别介绍了改善网站性能中页面内容和服务器的几条守则,除此之外,JavaScript和CSS也是我们页面中经常用到的内容,对它们的优化也提高网站性能的重要方面:CSS: 把样式表置于顶部 避免使用CSS表达式(Expression) 使用外部JavaScript和CSS 削减JavaScript和CSS 用<link>代替@import 避免使用滤镜 JavaScript 把脚本置于页面底部 使用外部JavaScript和CSS 削减JavaScript和C

JavaScript提高网站性能优化的建议(二)_javascript技巧

在javascript关于提高网站性能的几点建议(一)中,从HTTP请求到页面渲染几个方面对提高网站性能提出了几点建议,本文是学习Steve Sounders的另外一本书<高性能网站建设进阶指南>之后,从JavaScript性能的角度进行总结概括,诸君共勉. JavaScript性能是实现高性能Web应用程序的关键 --Steve Sounders 1 利用js作用域链 作用域链(scope chain) 当执行一段JavaScript代码(全局代码或函数)时,JavaScript引擎会创建为

Forbidden Attack:7万台web服务器陷入被攻击的险境

一些受VISA HTTPS保护的站点,因为存在漏洞容易受到Forbidden攻击,有将近70,000台服务器处于危险之中. 一种被称为"Forbidden攻击"的新攻击技术揭露许多HTTPS签证网站容易受到网络攻击,大约70,000台服务器处于危险之中.一群国际研究人员(Hanno Böck, Aaron Zauner, Sean Devlin, Juraj Somorovsky, and Philipp Jovanovic)发现该威胁动作可以向访问者的浏览器中注入恶意代码和伪造内容.

web服务器集群(多台web服务器)session同步、共享的3种解决方法_Linux

在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态.所以本文就根据这种情况给出三种不同的方法来解决这个问题: 一.利用数据库同步session 在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想过二种方法: 1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上