找回密码
 立即注册

只需一扫,快速开始

QQ登录

只需一步,快速开始

搜索
查看: 22982|回复: 1

[技术经验] iis7.5通过网址重写技术实现图片附件切换到阿里云方法

[复制链接]

8万

主题

431

回帖

9万

积分

管理员

积分
94388
QQ
发表于 2015-10-13 13:15:47 | 显示全部楼层 |阅读模式
对于大多数用户来说,特别是中小企业用户,网站速度缓慢组要是带宽问题
原因相比不用说,就是带宽太贵了。
一旦网站首页多几个大图,会直接导致打开速度龟速。
今天我遇到一个客户,某地方网站,首页挂了多个flash文件。且网站附件图片甚多。
具体参数如下:
引用
内存:2g
cpu:2核
程序:discuz (php+mysql)
系统:windows server 2008 + iis7 + mysql + php
带宽: 4M
访问量:小于1w  (可见配置还是非常浪费的)

主要问题:
1、系统是windows系统,从我经验看,对php支持,windows系统稳定性方面确实比较差。
2、首页大图、flash太多,直接导致首页文件过大,请求时间为18秒
3、个人感觉带宽浪费,这点用户一般2M足够。主要是首页太大,其他页面附件也多,导致打开缓慢。

解决方案:
1、想把数据库迁移到rds 但是没有实施,客户不想系统太过复杂。(未实施)
2、php参数优化。
3、网站缓存机制优化(由于磁盘不是ssd mysql本来负载不高,意义不大)。
5、将附件切换到oss 。此处并没有安装discuz提供的附件通接口,而是直接通过网址重写(也就是伪静态)将附件那部分请求切换到阿里云
6、由于是php网站,我建议将系统切换为 linux+ nginx+mysql+php  但是客户由于是linux盲,不想变那么复杂,无奈只能从其他方式优化网站,其中主要是对附件进行处理(未实施)

下面是主要的规则,适合iis7

  1. <rule name="daili">
  2.   <match url="^.*data/attachment/(common.*)" />
  3.   <action type="Rewrite" url="http://guoyangbbs.oss-cn-hangzhou.aliyuncs.com/{R:1}" />
  4.   <conditions>
  5.      <add input="{REQUEST_FILENAME}" matchType="IsFile" />
  6.   </conditions>
  7. </rule>
复制代码

下面是适合nginx的规则(这个是随机写的,没有经过实践,这个要注意必须oss文件和网站附件保持一直。因为没有加入判断条件,需要的己加。判断请求合法即可生效,确保在oss中找不到附件能到服务器中找附件。)
  1. if( !-e $request_filename )
  2. {
  3.     rewrite ^[^\.]*/data/attachment/(.*)$ http://7xlh81.com1.z0.glb.clouddn.com/$1 break;
  4. }
复制代码

然后定期同步一下附件。

总结:
1、技术方案要考虑用户的技术水平,对于普通用户弄很高深的系统没那么必要。
2、尽量采用比较简单的,免费的资源,低成本打造快速秒开网站。
3、优化后,系统打开速度在2s以下。
4、充分使用nginx反向代理,伪静态等,灵活使用可以在不改变url的情况下,改变用户数据存放位置。即便后期不用oss  一样可以灵活切换。
5、阿里云很多免费套餐,如rds  oss (每月5G流量),对于中小网站完全足够了。


当然大家也可以使用附件通
参考:
低成本打造秒开网站(使用第三方云存储)https://www.playzhan.com/thread-1326-1-1.html
(出处: 玩站网)






回复

使用道具 举报

5

主题

21

回帖

748

积分

高级站长

积分
748
发表于 2015-10-14 20:46:47 | 显示全部楼层
膜拜了。虽然现在没看懂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

QQ|Archiver|手机版|小黑屋|站秘书 ( 蜀ICP备15034504号-3 )

GMT+8, 2024-5-3 14:53 , Processed in 0.085413 second(s), 40 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表