В поисках понимания проблемы, которую мне не удалось решить, так как я неопытен в работе сервера.
Основной вопрос: как просмотреть более подробную информацию об ошибке?
У меня есть веб-приложение, которое позволяет пользователю загружать файл 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;
}
}
Цените любые идеи и советы.Спасибо!