111 Отказ в соединении при загрузке файла - Flask / Nginx - PullRequest
0 голосов
/ 04 октября 2018

В поисках понимания проблемы, которую мне не удалось решить, так как я неопытен в работе сервера.

Основной вопрос: как просмотреть более подробную информацию об ошибке?

У меня есть веб-приложение, которое позволяет пользователю загружать файл CSV;этот CSV изменен и возвращен пользователю в качестве загрузки.В настоящее время это веб-приложение прекрасно работает в моей среде разработки localhost.Поскольку я пытаюсь использовать его на отдельном сервере, у меня возникла проблема при загрузке файла.Я получаю 500 Внутренняя ошибка сервера (111 соединение отказано).

Поскольку я неопытный, я не знаю, как диагностировать эту ошибку, кроме проверки журналов ошибок в /var/log/myapp-error.log

2018/10/04 09:24:53 [error] 24401#0: *286 connect() failed (111: Connection refused) while connecting to upstream, client: 128.172.245.174, server: _, request: "GET / HTTP/1.1", upstream: "http://[::1]:8000/", host: "ip addr here"

Я хотел бы знатькак я могу узнать больше о том, что вызывает эту ошибку.Я установил колбу в режим отладки, но не могу получить трассировку стека на этом тожеЯ приведу ниже некоторые настройки флешки и nginx на случай, если это будет полезно.

@app.route('/<path:filename>')
def get_download(filename):
    return send_from_directory(UPLOAD_FOLDER, filename, as_attachment=True)

@app.route('/', methods = ['GET', 'POST'])
@app.route('/index', methods = ['GET', 'POST'])
def index():
    path = os.path.join(dirname(realpath(__file__)), 'uploads')
    uploaded = ''

    if request.method == 'POST':
            if 'file' not in request.files:
                    flash('no file part')
                    return redirect(request.url)
            file = request.files['file']

            if file.filename == '':
                    flash('no selected file')
                    return redirect(request.url)

            if file and allowed_file(file.filename):
                    filename = secure_filename(file.filename)
                    file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
                    uploaded = str(path + '/' + filename)

                    df = preprocess_table(uploaded)

                    fp = classify(df, filename)
                    print(fp)
                    head, tail = os.path.split(fp)
                    print(tail)
                    get_download(tail)

                    return send_from_directory(UPLOAD_FOLDER, tail, as_attachment=True)

    return render_template('index.html')

А вот мои настройки nginx.

server {
    #listen on port 80 http
    listen 80;
    server_name _;
    location / {
            #redirect requests to same URL but https
            return 301 https://$host$request_uri;
    }
}

server {
    #listen on port 443 https
    listen 443 ssl;
    server_name _;

    #location of the self sign ssl cert
    ssl_certificate /path/to/certs/cert.pem;
    ssl_certificate_key /path/to/certs/key.pem;

    #write access and error logs to /var/log
    access_log /var/log/myapp_access.log;
    error_log /var/log/myapp_error.log;

    location / {
            #forward application requests to the gunicorn server
            proxy_pass http://localhost:8000;
            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;

    }

    location /static {
            #handle static files directly, without forwarding to the application
            alias /path/to/static;
            expires 30d;
    }
}

Цените любые идеи и советы.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...