类别归档:SAE

Sina Application Engine

RSS feed of SAE

使用Nginx为新浪云SAE搭建临时海外代理

通过SAE的海外代理绑定独立域名,有时会遇到服务不稳定的情况,导致应用无法访问。

此时,如果手边恰好有一台可用的位于海外的Linux服务器,可以通过Nginx服务器为SAE应用搭建一个临时的反向代理,以解燃眉之急。

Nginx服务器的安装与反向代理的配置:

以CentOS系统为例,首先使用yum安装nginx服务器:

[root@localhost ~]# yum install nginx

然后更改nginx配置文件:

vi /etc/nginx/conf.d/default.conf

将location / {...}代码段替换为如下内容(<<APP_NAME>>替换为应用名):

location / {
    proxy_set_header  X-Real-IP $remote_addr;
    proxy_set_header  X-Forwarded-For $remote_addr;
    proxy_set_header  X-Forwarded-Host $remote_addr;
    proxy_pass http://<<APP_NAME>>.sinaapp ...

继续阅读

SAE Django配置共享型MySQL数据库路由

托管在SAE上的Django应用,如果使用共享型MySQL数据库服务,可以通过配置数据库路由,实现读写分离。利用SAE从库的价格优势,减少云豆开销。

SAE共享型MySQL数据库的计费策略:

新浪云SAE共享型数据库支持读写分离(Read/Write Splitting),即主数据库(Master)处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库(Slave)处理SELECT查询操作。

并且从SAE共享型MySQL的使用价格上来看:

共享型MySQL(主库)
请求次数10000次    400云豆/百万次    4元/百万次
磁盘容量20MB    5云豆/GB/天    0.05元/GB/天

共享型MySQL(从库 ...

继续阅读

使用SAE实时日志API统计IP来访次数

托管至SAE的应用,有时会出现访问流量异常增长的情形。

此时,我们需要对流量异常日期对应的应用访问日志进行分析,从而排查流量异常增长的原因。

一个简单有效的方式就是对访客IP进行统计,因为流量异常很可能是由于少数几个IP在短时间内的大量访问造成的(当然也不排除DDoS攻击)。

要获取SAE的访问日志,可以从SAE的日志面板手工下载,也可以使用SAE的实时日志API,参阅博文:SAE实时日志API Python使用小记

由于我们只需要使用日志的IP字段,通过SAE实时日志API中fop参数的fields命令可以移除多余的日志字段,从而节省下载流量造成的云豆消耗。

通过下面的Python代码即可实现特定日期的访客IP统计。

在工作目录下创建sae_log_util.py,apibus_handler.py,ip_counter.py并拷贝相应代码,执行ip_counter.py即可。

sae_log_util.py:

#-*-coding: utf8 -*-

#sae_log_util.py
#sae log utility based on sae apibus_handler
#author ...

继续阅读

新浪云Git代码仓库使用入门

SAE近期的优化,目前已经支持Git,本文将介绍如何使用Git在SAE上部署代码。

使用Git进行代码管理,首先要在本地安装Git客户端,下载链接:http://www.git-scm.com/download/

Git客户端的安装与配置过程在此略去不讲,谷歌一下可以找到许多相关的内容,文章重点介绍如何使用Git在SAE上部署代码。

本文例子中使用的操作系统为Windows 8.1,应用语言为Python,应用名称为gitsrc。

0. 代码管理方式的选择

在首次对应用进行代码管理时,有且仅有一次选择代码库管理方式的机会,这里我们选择Git。

此后应用的代码管理方式将不可变更

创建完成后,可以在页面上看到应用的Git仓库地址:https://git.sinaapp.com/gitsrc/ 

1. 使用git clone克隆代码仓库

在命令提示符(cmd)下,cd到工作目录 ...

继续阅读

SAE实时日志API Python使用小记

SAE新近开放的实时日志API允许开发者通过HTTP GET方式从SAE服务器获取应用日志,从而实现在线的应用调试与分析。

API参数介绍:

SAE日志API的URL请求格式为:GET /log/(string: service)/(string: date)/(string: ident).log?(string: fop)

参数列表中:

date表示日志的日期,格式为yyyy-MM-dd

service为SAE提供的各项服务,包括http,taskqueue(任务队列),cron(定时任务),mail(邮件),rdc(关系型数据库集群),storage(存储),push(推送)以及fetchurl(URL抓取),相信熟悉SAE的开发者不会对此感到陌生。

ident表示相应服务下的日志类型 ...

继续阅读