V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
honmaple
V2EX  ›  Python

flask 子域名如何部署

  •  
  •   honmaple · 2016-05-19 17:28:25 +08:00 · 3305 次点击
    这是一个创建于 3129 天前的主题,其中的信息可能已经有所发展或是发生改变。

    flask 中有subdomain这个变量,请教 nginx 如何写才能部署子域名,虽然可以用两个 flask 应用监听两个端口实现,但能否一个应用实现多个子域名, 我找了一下,找到这个使用 uwsgi,但我没有用 uwsgi,而是gunicorn, nginx 是这样的

    server {
            listen 80 ;
            server_name aaa.xxx.org;
    	access_log  /var/log/nginx/docs/access.log  main;
    	error_log  /var/log/nginx/docs/error.log;
    
                    proxy_pass http://127.0.0.1:8080;
                    proxy_redirect     off;
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    }
    server {
            listen 80 ;
            server_name bbb.xxx.org;
    	access_log  /var/log/nginx/bbs/access.log  main;
    	error_log  /var/log/nginx/bbs/error.log;
    
                    proxy_pass http://127.0.0.1:8080;
                    proxy_redirect     off;
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    }
    
    
    # config.py
    SERVER_NAME = 'xxx.org'
    

    现在访问 bbb.xxx.org 会显示 aaa.xxx.org 的内容,请教这个该怎么做?

    9 条回复    2016-05-20 11:46:46 +08:00
    jzp113
        1
    jzp113  
       2016-05-19 20:08:48 +08:00
    proxy_pass http://127.0.0.1:8080 地址指向改下
    honmaple
        2
    honmaple  
    OP
       2016-05-19 20:27:52 +08:00
    @jzp113 改了的话就是监听两个端口了,另一个端口没有应用
    dphdjy
        3
    dphdjy  
       2016-05-19 20:35:18 +08:00 via Android
    blueprint
    honmaple
        4
    honmaple  
    OP
       2016-05-19 20:37:46 +08:00
    @dphdjy subdomain 都是在 blueprint 注册的
    likai
        5
    likai  
       2016-05-19 20:57:39 +08:00
    直接域名转发不好么
    dphdjy
        6
    dphdjy  
       2016-05-19 21:48:02 +08:00 via Android
    @honmaple 为什么给你搞这么复杂~ 没用过你那个~ 找找通配符的方法 用了 subdomain 分离就交给 py 了全部扔给 py 就好了~ 我用的是 lighttpd 就是类似的设定~
    honmaple
        7
    honmaple  
    OP
       2016-05-19 21:58:35 +08:00
    @likai 什么意思?
    honmaple
        8
    honmaple  
    OP
       2016-05-19 22:03:32 +08:00
    @dphdjy 现在是 url_for('static',filename='index.css')的问题,加了`SERVER_NAME='xxx.org'`,静态文件链接就成了 htttp://xxx.org/static/index.css,但是 xxx.org 我用在其他地方,并没有用在这个应用里,我认为加了 app.url_map.default_subdomain = "forums"后默认的 static 应该是 htttp://forums.xxx.org/static/index.css,结果不是
    honmaple
        9
    honmaple  
    OP
       2016-05-20 11:46:46 +08:00
    ok ,在这里 https://github.com/pallets/flask/issues/1559 找到了方法,重写 static url
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2328 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:49 · PVG 23:49 · LAX 07:49 · JFK 10:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.