作者归档:在线疯狂

RSS feed of 在线疯狂

使用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.com/;
}

更改完毕后启动nginx服务:

[root@localhost ~]# service nginx start
Starting nginx:                                            [  OK ...

继续阅读

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(从库)
请求次数10000次    150云豆/百万次    1.5元/百万次

从库的每百万次请求价格仅为主库的37.5%,因此充分利用从库的价格优势,可以减少应用在数据库服务上的云豆开销。

不过需要注意的是:MySQL从库有时候会因为网络抖动或者用户SQL语句不够优化,导致从库数据同步会有些微延时(3-10秒)。如果用户有对数据实时性要求比较高的查询,建议在主库上进行操作。

参考SAE共享型MySQL说明文档:http://www.sinacloud.com/doc/sae/php/mysql.html

Django数据库路由配置:

参考Django多数据库配置文档:https://docs.djangoproject.com/en/1.8/topics/db/multi-db/

假设settings.py位于mysite目录下,在settings.py中添加如下配置:

if 'SERVER_SOFTWARE' in os.environ:
    from sae.const import (
        MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASS, MYSQL_DB, MYSQL_HOST_S
    )
else:
    # Make ...

继续阅读