文章内容
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服务了,再看看宽带压力:

明显可以看到宽带压力小了很多,访问速度也快了很多。
好了,这次对网站的优化就是这些,大家有什么疑问可以在下面给我留言。
参考资料:
黄兵个人博客原创。
评论列表