繁体   English   中英

504网关超时服务器未及时响应

[英]504 Gateway Time-out The server didn't respond in time

我使用虚拟机运行烧瓶应用程序“ sqtf”。 她使用127.0.0.1:5000在本地工作,但不适用于我的apache服务器。 我使用python3.6,apache2.4和mod_wsgi。 这是我的项目的简化结构:

/var/www/squashPy/src/squash_test_filter/
                              /sqtf
                                  sqtf.wsgi
                                  __init__.py
                                  /static
                                  /templates
                              /venv

在apache上配置我的VirtualHost'sqtf.com.conf',然后在我的sqtf.wsgi(还配置我的virtualenv和/ etc / hosts)上配置服务器之后,该服务器会在www.sqtf.com上做出响应,但会在我的登录页面或其他任何位置进行响应, www.sqtf.com/auth/login'504网关超时服务器端口80。

在我的error.log中:

从守护进程'sqtf'读取响应时超时:/var/www/squashPy/src/squash_test_filter/sqtf/sqtf.wsgi

我在DeamonProcess中添加了一个python-home。 增加超时不会更改任何内容。

我的sqtf.com.conf

<VirtualHost *:80>
     ServerName www.sqtf.com
     ServerAlias sqtf.com
     ErrorLog /var/www/squashPy/sqtf.com/logs/error.log
     CustomLog /var/www/squashPy/sqtf.com/logs/custom.log combined
     WSGIDaemonProcess sqtf python-home='var/www/squashPy/src/squash_test_filter/venv'
     WSGIProcessGroup sqtf
     WSGIApplicationGroup %{GLOBAL}
     WSGIScriptAlias / /var/www/..../sqtf/sqtf.wsgi
     Alias /static/ /var/wwww/..../sqtf/static
     <Directory /var/www/..../static>
          Require all granted
     </Directory>
<VirtualHost>

我的sqtf.wsgi

    activate_this='/var/www/..../venv/bin/activate_this.py'
    with open(activate_this) as file_:
            exec(file_.read(), dict(__file__=activate_this))
    import sys
    import logging
    sys.path.insert(0, "/var/www/squashPy/src/squash_test_filter/")
    from sqtf import app as application

我的/ etc / hosts的一部分:

    127.0.0.1 localhost
    127.0.1.1 ubuntu
    127.0.0.1 www.sqtf.com sqtf.com sqtf

    # etc ...

我的/ sqtf / init .py的一部分

    import ...



    def create_app(test_config=None):
        # create and configure the app

        app = Flask(__name__, instance_relative_config=True)
        api = Api(app)

        app.config.from_mapping(
            SECRET_KEY='dev',
            DATABASE=os.path.join(app.instance_path, 'sqtf.sqlite'),
        )

        if test_config is None:
            # load the instance config, if it exists, when not testing
            app.config.from_pyfile('config.py', silent=True)
        else:
            # load the test config if passed in
            app.config.from_mapping(test_config)

        # ensure the instance folder exists
        try:
            os.makedirs(app.instance_path)
        except OSError:
            pass
        db.init_app(app)
        return app

我解决了这个问题,例如,如果您使用烧瓶工厂,例如create_app,则需要通过以下方式将from sqtf import app as application更改from sqtf import app as application .wsgi中的这一行:

from sqtf import create_app
application=create_app()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM