如何提高网站访问速度

【转载至:http://pcajax.iteye.com/blog/749088

一、  服务器优化

l  Windows系列:

  • 64位Win2008r2 + Hpyer-V + 负载均衡 + IIS7.5
  • 64位Win2003 + 虚拟机 + 负载均衡 + IIS6
  • 禁止服务器访问外网。关掉不必要的端口。
  • 去掉每个磁盘的所有权限,只保留administrators组和system完全控制权限。
  • IIS7.5标识使用ApplicationPoolIdentity,给目录权限用户是:IIS AppPool\站点名
  • IIS6需要为每个站点建独立的用户,为IIS用户单独设置权限。
  • IIS禁止日志记录。
  •  

二、  数据库优化

l  64位MSSQL2008:

  • 少用触发器/游标/外键。多用存贮过程和视图。适量使用索引查询速度会提高很多,每个表的索引尽量不要超过3个。
  • 定时查看死锁的进程和等待进程,并清除,还要及时修正死锁的来源。
  • 复杂的统计报表需要用计划去跑。
  • 查询记录数要使用count(0) 不要使用count(*)。
  • select的时候表字段不要使用*。*查询所有字段是很慢的。
  • 如果字段是索引列可使用UNION ALL 替代 OR,走索引线路查询。
  • 大记录集要使用分页查询。
  • 尽量不要使用TEXT/NTEXT类型,要使用VARCHAR(MAX)/NVARCHAR(MAX)。
  • 尽量不要使用临时表,要使用Table表类型或内嵌视图。
  •  

三、  后端优化

l  多使用DbDataReader,尽量不要使用DataTable/DataSet读取数据。

l  for (int i = 0; i < dt.Rows.Count; i++) 应该这么写:

for (int i = 0, len = dt.Rows.Count; i < len; i++)或

foreach (DataRow info in dt.Rows)推荐这种写法

l  少用try catch,用到try catch时要和 finally一起使用。

l  多使用using如:

using (DbDataReader dr = Data.GetDbDataReader(strSql)) { while (dr.Read()) { }; }

l  大字符串操作请使用StringBuilder 少使用string,字符串比较用Compare,字符串相加用Concat,大字符串相加用StringBuilder Append。

l  变量要在先定义在使用,不要在循环内定义变量。如:

错误的写法是:for (int i = 1; i < 10; i++) { string s = i.ToString(); }

正确写法:string s = string.Empty; for (int i = 1; i < 10; i++) { s = i.ToString(); }

这里还有一个地方要注意的:在字符串相加的时候,如果有int类型的要先转成string类型在相加,减少不必要的装箱拆箱操作。

l  如果你使用的是HTML控件,需要禁用<%@ Page EnableViewState="false" AutoEventWireup="false" EnableSessionState="false",web.config <pages enableViewState="false" enableSessionState="false" />

l  使用foreach替代for

l  操作数据库要使用存贮过程/视图。

l  多使用CACHE对数据缓存。这才是最关键的。NET提供:HttpContext.Current.Cache/HttpRuntime.Cache,共享缓存有velocity/ memcached

l  可使用<%@ OutputCache Duration="60" 缓存页面,可使用Response.BufferOutput = true;/ <%@ Page Buffer="true" 输出缓冲。

l  可将站点生成静态面页,好处多多。

l  可使用URL重写成伪静态,提供rss/baidu-sitemap/google-sitemap服务,有利于搜索引擎收录。

l  Ajax调用页面要使用.ashx一般处理程序,速度要比.aspx文件要快。Ajax请求要使用POST不要使用GET。

l  发布站点时DLL要Release版本,不要用Debug版本。

l  IIS需要使用集成模式,不要使用经典模式。

l  Web.config 加 <customErrors mode="On" /> 关闭错误提示。

l  Web.config 加 <compilation debug="false" /> 关闭调试模式。

l  使用Server.Transfer替换Response.Redirect

l  多使用泛型集合操作,少用ArrayList。

 

四、  前端优化

l  最好不使用NET控件,用HTML控件,页面使用CSS+DIV布局。

l  使用JSON + AJAX进行数据交互。

l  要学会使用jQuery提高开发速度。

l  尽量少用<img标记,改用background样式控制背景图片。这样做的好处是方便扩展多皮肤。

l  将CSS background背景图片多张合并成一张图片,保证合并后的图片大小不要超过50K。可将JS文件合并在一个JS文件中,然后使用closure_packer_yui_compiler进行压缩,这样做的好处是可减少客户端连接数。

l  JS代码段不要放在HTML页面,应该放在独立的JS文件里面,好处是JS文件可以CDN/缓存。

l  可将CSS文件放到<head></head>之间,JS文件或代码放到</body>之前,让页面先显示在执行JS。

l  可将网站的图片/CSS/JS/资料/资源放到独立的站点,做下CDN加速,二级域名会有COOKIES,最好使用一级域名。

l  A标记和IMG标记需要加上title/alt,<head>标签内需要加title/keywords/description/rss/sitemap优化,有利于搜索引擎收录。

l  页面可启用gzip压缩。

l  安装FF的插件“YSlow/Page Speed”。

五、  其它优化

为了提高nginx的访问速度,可以采取以下几个方法: 1. 启用sendfile:在nginx的配置文件中,可以开启sendfile选项。这个选项可以直接将文件从磁盘复制到网络,避免了通过用户空间缓冲区的复制过程,从而提高了性能。 2. 启用gzip压缩:可以使用nginx的gzip模块来启用gzip压缩功能。当客户端请求的资源可以进行gzip压缩时,nginx会将资源压缩后再发送给客户端,减少传输的数据量,从而提高访问速度。 3. 使用缓存:可以使用nginx的代理缓存功能来缓存经常访问的静态资源,如图片、CSS和JS文件。当客户端再次请求这些资源时,nginx会直接从缓存中返回,而不需要再去后端服务器获取,从而提高访问速度。 4. 调整worker_processes和worker_connections:可以根据服务器的性能和负载情况,适当调整worker_processes和worker_connections参数。worker_processes指定nginx的工作进程数,可以根据服务器的CPU核心数进行设置;worker_connections指定每个工作进程的最大连接数,可以根据服务器的内存和负载情况进行设置。 5. 配置TCP优化:可以通过修改操作系统的TCP参数来优化nginx的网络性能。例如,可以增加TCP的接收和发送缓冲区大小,调整TCP的拥塞控制算法等。 通过以上方法,可以有效地提高nginx的访问速度,提升网站的性能和用户体验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [如何优雅的使用 Nginx 缓存机制将网站访问速度提高 10 倍](https://blog.csdn.net/easylife206/article/details/120540331)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Nginx优化](https://blog.csdn.net/weixin_67510296/article/details/125070234)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值