Todo:タイトルがあきらかにおかしい。

やりたいこと

http://192.168.0.1:5001/myapp ←これを
http://example.com/myprefix/myapp ←これで動かしたい。
myappのscriptを一切変更せずに。(url_forの挙動がよくわからなかったんですよ。)

プロキシー

イカ娘ちゃんは、言った。プロキシーを作ればいいじゃなイカ!ほんとは、flask.pocoo.org/snippets/35/の真似しただけです。

nginxの設定

location /myprefix/ {     
    include uwsgi_params;     
    if ($uri ~ ^/myprefix(.*)?) {    
        set $path_url $1;     
    }    
    uwsgi_param SCRIPT_NAME /myprefix; 
    uwsgi_pass  0.0.0.0:5001;    
    uwsgi_param X-Script-Name /myprefix;    
    uwsgi_param X-Scheme $scheme;     
}

reverseProxy

class ReverseProxied(object):
    def __init__(self, app):
        self.app = app
    def __call__(self, environ, start_response):
        script_name = environ.get('X-Script-Name', '')
        if script_name:
            path_info = environ['PATH_INFO']
            if path_info.startswith(script_name):
                environ['PATH_INFO'] = path_info[len(script_name):]
        scheme = environ.get('X-Scheme', '')
        if scheme:
            environ['wsgi.url_scheme'] = scheme
        return self.app(environ, start_response)

done

nginxをreloadして、myappにReverseProxyを組み込んで、uwsgi起動しておしまい。headerとか、X-が何を意味するのかわかってないので、調べたいと思います(・∀・)v

« Adventure, Stamina & Anger

pjaxって何ですか? »

blog comments powered by Disqus

Categories

Uncategorized (rss) (2) | blogofile (rss) (2) | designpettern (rss) (3) | flask (rss) (2) | fluxflex (rss) (3) | java (rss) (6) | nginx (rss) (6) | python (rss) (8) | sacloud (rss) (3) | spdy (rss) (2) | thistownneedsguns (rss) (2) | webService (rss) (2) | zabbix (rss) (3) | さくらVPS (rss) (4) | 芸術は爆発しろ (rss) (3) |