Flask Apache mod_wsgi无限页面加载

时间:2017-03-22 19:57:42

标签: python flask apache2 mod-wsgi

我有/etc/apache2/sites-available/SpinnerApp.conf

<VirtualHost *:80>
            ServerName 95.xxx.xxx.xx
            ServerAlias domain.ru

            WSGIScriptAlias / /var/www/SpinnerApp/spinnerapp.wsgi
            WSGIDaemonProcess SpinnerApp user=www-data group=www-data threads=5

            <Directory /var/www/SpinnerApp/SpinnerApp/>
                    WSGIProcessGroup SpinnerApp
                    WSGIApplicationGroup %{GLOBAL}
                    WSGIScriptReloading On
                    Order allow,deny
                    Allow from all
            </Directory>

            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined

和/var/www/SpinnerApp/spinnerapp.wsgi

#!/usr/bin/python
import os, sys, logging
logging.basicConfig(stream=sys.stderr)

activate_this = os.path.join('/var/www/SpinnerApp/SpinnerApp/spinnerenv', 'bin', 'activate_this.py')
execfile(activate_this, dict(__file__=activate_this))

sys.path.insert(0,'/var/www/SpinnerApp')

from SpinnerApp import app as application

但是当输入ip到浏览器页面loadind没有结束时。 apache日志中没有错误。

请帮助

1 个答案:

答案 0 :(得分:0)

这是错误的:

<Directory /var/www/SpinnerApp/SpinnerApp/>

它应该是:

<Directory /var/www/SpinnerApp>

它起作用表明你的整体Apache配置可能会被破坏,因为访问控制不应该允许该位置的WSGI脚本在错误的情况下被使用。

这个错误的其他含义是代码在嵌入模式下运行,这不是首选安排。也就是说,没有使用创建的守护程序进程组。此外,WSGIApplicationGroup指令并未暗示。这个特定的一个是您可能会看到您所遇到的问题的原因。也就是说,您正在使用第三方Python模块,该模块无法正确使用Python子解释器。该指令避免使用子解释器。

此外,ServerName指令值不应该是IP地址而是主机名。将其设置为您用于ServerAlias的值,然后删除ServerAlias指令行。