python - 在 Linux 服务器上使用 Python Flask 的 Nginx 400 错误请求
问题描述
我有一个 python 烧瓶程序,它完美地在我的本地 Windows 电脑上运行。当我向邮递员发送请求时,它工作正常。然后我将它发布在我的 linux 服务器上。我的应用程序服务“systemctl status service”输出如下所示:
但是当我从邮递员发送请求时,它的响应是“400 Bad Request”
我的代码相关部分是:
def read_file(unknown_count, file_data):
file = pd.read_csv(file_data, sep=';', header=None)
df = pd.DataFrame(file)
solve(df, unknown_count)
@app.route("/find", methods = ['POST'])
def findroots():
unknowns = int(request.form['unknowns'])
file_data = request.files['file']
read_file(unknowns, file_data)
return send_file('roots.csv', mimetype='text/csv', as_attachment=True)
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)
我从请求表单数据中获取一个 csv 文件和一个变量值,然后在我的 read_file() 函数中将 csv 文件转换为数据帧。然后我正在计算一些东西,然后将结果写入 csv 文件,并将其作为响应发送。
def solve(df, unknown_count):
//here is my some codes
to_csv(roots)
def to_csv(roots):
root_vals = []
for i, root_cluster in enumerate(roots):
//here is some codes which is doesn't matter
root_vals.append(root_val)
dfr = pd.DataFrame(root_vals)
dfr.to_csv('roots.csv', index = False, header=None)
正如我所说,它在我的本地计算机上工作正常。但是当我试图向我在 linux 服务器上运行的应用程序发送请求时。它返回 400 错误请求。也许原因仍然是read_csv。但我试图处理 7 个小时。最后我决定在那里问它。我删除了所有文件并再次部署。
这是我的服务:
但还是一样。有谁能够帮我?
解决方案
您的 Nginx 配置看起来正确。
您可以使用sudo nginx -T
打印当前加载的配置。确保在进行更改后重新加载配置sudo nginx -s reload
您可以简单地检查您的服务器块是否会使用此配置 snip-it 到达:
server {
listen 8081;
server_name 1.2.3.4;
location / {
return 200 "Hello from the other side... \n";
}
}
这应该打印出来hello from ...
,因为
curl -v http://1.2.3.4:8081
推荐阅读
- c - 将线性地址翻译成Linux内核中对应的逻辑地址
- reactjs - React 原生透明搜索栏
- javascript - window.opener 在 android chrome 上为空(但不是隐身)
- scala - 如何计算 Spark SQL 数据框中的百分比?
- java - 如何关闭 Eclipse Photon 中的“仅对测试源可见”功能?
- string - 无法在 CLang 中初始化模板化类中的静态字符串集,在 GCC 中工作正常
- powershell - 是否有用于 Azure AD 应用程序注册的 PowerShell DSC 模块?
- java - 在java中对多个NOT字段进行ORing
- php - 递归公式中的 PHP 正则表达式
- c# - 如何在 Visual Studio 2017 ASP.NET Core Web 应用程序中集成 Bootstrap 4?