在Ubuntu 500上的flank/nginx/gunicorn中的NLTK+TextBlob错误



我正试图在Ubuntu上运行的Flask应用程序中运行名词短语分析,该应用程序通过gunicorn和nginx提供服务。我得到一个错误500,没有(明显的)记录nginx、supervisor或unicon错误日志中发生的错误。"supervisorctl-tail应用程序"也没有透露任何信息。

我的网站可用nginx.conf:

server {
    listen 80;
    server_name [domain redacted];
    charset utf-8;
    client_max_body_size 75M;
    access_log /var/log/nginx/nginx_access.log;
    error_log /var/log/nginx/nginx_error.log;
    location / { try_files $uri @app; }
    location @app {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

我的主管app.conf

[program:app]
command = gunicorn app:app -b localhost:8000
directory = /home/www/app
user = admin

我正在app.py中运行我的应用程序,其中包含以下内容(config.py中的DEBUG=False和True遇到的问题)

app = Flask(__name__, static_folder='static', static_url_path='/static')
app.config.from_pyfile('config.py')
if __name__ == '__main__':
        app.run()
        if not app.debug:
            stream_handler = logging.StreamHandler()
            stream_handler.setLevel(logging.INFO)
            app.logger.addHandler(stream_handler)

Config.py只是

DEBUG = False
ALLOWED_HOSTS=['*']

名词短语功能我称之为

from textblob import TextBlob
def generateNounPhrases(input):
    blob = TextBlob(input)
    np = blob.noun_phrases
    return np

页面的app.py烧瓶路由,传递generateUnnPrases()的输出

@app.route('/thread', methods=['GET'])
def thread():
    ...
    nounphrases = generateNounPhrases(text_to_analyze)   
    ...
    return render_template("Thread.html", nounphrases=nounphrases)

我完全迷失了方向,在这方面我是个新手。任何指导都将是巨大的!

为运行此应用程序而创建的app.conf supervisor文件中声明的sudo user = admin无法在站点根级别读取。在/root/NLTK_data下载的无法访问的NLTK语料库导致了我原来的500…

我在重新配置gunicorn日志记录后发现了这个问题,并且在supervisorctl restart app上收到了新指向的gunicorn.log没有写入权限的致命主管崩溃。

我更新并工作的主管配置,无需用户声明,如下所示:

[program:app]
command = gunicorn app:app -b localhost:8000 --log-file /var/log/gunicorn/gunicorn_log.log
directory = /home/www/app
stdout_logfile=/var/log/supervisor/supervisor_stdout.log
stderr_logfile=/var/log/supervisor/supervisor_stderr.log

然而,我不确定这个配置的全部安全含义是什么,也不确定为什么sudo组管理员用户没有正确访问目录。任何有此答案的人都可以获得奖励积分。

最新更新