文章内容
2018/8/28 9:53:23,作 者: 黄兵
Flask Bootstrap 使用CDN减轻服务器压力 flask网站优化
最近我写的一个关于在线接收短信网站访问量暴增,这个网站只有1M的宽带,经常跑满,看下面截图:
看一下网站访问量:
169的访问量网站宽带都跑满了,所以需要优化。
这个宽带跑满就需要优化一些大文件,减少占用宽带。最好的方法就是使用CDN服务。
修改Bootstrap-flask使用CDN:
app.config['BOOTSTRAP_SERVE_LOCAL'] = False
之后指定CDN地址:
添加如下引用:
from flask_bootstrap import Bootstrap, WebCDN, ConditionalCDN, BOOTSTRAP_VERSION, JQUERY_VERSION, HTML5SHIV_VERSION, \ RESPONDJS_VERSION
代码:
def change_cdn_domestic(tar_app): static = tar_app.extensions['bootstrap']['cdns']['static'] local = tar_app.extensions['bootstrap']['cdns']['local'] def change_one(tar_lib, tar_ver, fallback): tar_js = ConditionalCDN('BOOTSTRAP_SERVE_LOCAL', fallback, WebCDN('//cdn.bootcss.com/' + tar_lib + '/' + tar_ver + '/')) tar_app.extensions['bootstrap']['cdns'][tar_lib] = tar_js libs = {'jquery': {'ver': JQUERY_VERSION, 'fallback': local}, 'bootstrap': {'ver': BOOTSTRAP_VERSION, 'fallback': local}, 'html5shiv': {'ver': HTML5SHIV_VERSION, 'fallback': static}, 'respond.js': {'ver': RESPONDJS_VERSION, 'fallback': static}} for lib, par in libs.items(): change_one(lib, par['ver'], par['fallback'])
这个使用的是Bootcss的CDN服务,国内访问稳定且高速,在此表示感谢。
之后调用change_cdn_domestic
。
change_cdn_domestic(app)
好了,搞定。完整代码如下:
# -*- coding: UTF-8 -*- from flask import Flask from flask_bootstrap import Bootstrap, WebCDN, ConditionalCDN, BOOTSTRAP_VERSION, JQUERY_VERSION, HTML5SHIV_VERSION, \ RESPONDJS_VERSION from flask_sqlalchemy import SQLAlchemy from config import config from flask_moment import Moment from flask_pagedown import PageDown from flaskext.markdown import Markdown bootstrap = Bootstrap() db = SQLAlchemy() moment = Moment() pagedown = PageDown() def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) app.config['BOOTSTRAP_SERVE_LOCAL'] = False bootstrap.init_app(app) db.init_app(app) moment.init_app(app) pagedown.init_app(app) Markdown(app) change_cdn_domestic(app) # 附加路由和自定义的错误页面 from .main import main as main_blueprint app.register_blueprint(main_blueprint) return app def change_cdn_domestic(tar_app): static = tar_app.extensions['bootstrap']['cdns']['static'] local = tar_app.extensions['bootstrap']['cdns']['local'] def change_one(tar_lib, tar_ver, fallback): tar_js = ConditionalCDN('BOOTSTRAP_SERVE_LOCAL', fallback, WebCDN('//cdn.bootcss.com/' + tar_lib + '/' + tar_ver + '/')) tar_app.extensions['bootstrap']['cdns'][tar_lib] = tar_js libs = {'jquery': {'ver': JQUERY_VERSION, 'fallback': local}, 'bootstrap': {'ver': BOOTSTRAP_VERSION, 'fallback': local}, 'html5shiv': {'ver': HTML5SHIV_VERSION, 'fallback': static}, 'respond.js': {'ver': RESPONDJS_VERSION, 'fallback': static}} for lib, par in libs.items(): change_one(lib, par['ver'], par['fallback'])
之后测试,截图如下:
大部分已经使用CDN服务了,再看看宽带压力:
明显可以看到宽带压力小了很多,访问速度也快了很多。
好了,这次对网站的优化就是这些,大家有什么疑问可以在下面给我留言。
参考资料:
黄兵个人博客原创。
评论列表