Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python url中没有端口的Flask请求_Python_Rest_Flask - Fatal编程技术网

Python url中没有端口的Flask请求

Python url中没有端口的Flask请求,python,rest,flask,Python,Rest,Flask,我有一个ubuntu EC2服务器,想运行一个flask服务器。我想使用我的域名api.example.com访问服务器,而不必包含端口号。现在,我可以通过api.example.com:5000/…成功访问服务器。。。但是我不知道如何做api.example.com/ 现在我只是直接运行flask服务器,使用python flask_server.py 在flask_server.py中: if __name__ == '__main__': app.run(host=0.0.0.0)

我有一个ubuntu EC2服务器,想运行一个flask服务器。我想使用我的域名api.example.com访问服务器,而不必包含端口号。现在,我可以通过api.example.com:5000/…成功访问服务器。。。但是我不知道如何做api.example.com/

现在我只是直接运行flask服务器,使用python flask_server.py

在flask_server.py中:

if __name__ == '__main__':
    app.run(host=0.0.0.0)
采用端口可选参数:

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=80)
您可以在测试中这样做,但在生产中,我强烈建议您阅读文档中的部分,其中详细介绍了使用各种前端WSGI服务器运行flask的方法

如果您需要帮助了解所有这些组件如何协同工作以及如何设置它们;有一个很好的总结


更新:主机参数必须是字符串。

在端口80上使用Flask server的正确语法为:

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)
请记住,您可能需要超级用户权限

如果您仍在构建应用程序,这种变通方法是可以接受的

据我所知,如果您计划在生产环境中部署应用程序,那么您需要正确地执行。 根据要求,您可以在这里找到Ubuntu的逐步信息:


您需要sudo权限才能使用端口80

sudo python3 app.py 

这将解决问题。

我已尝试将端口设置为80,但首先我的权限被拒绝。当我使用sudo运行时,我得到了一个错误:无法导入配置模块,这没有多大意义。我尝试过nginx、apache和mod_wsgi,但都没有效果,无法让它们工作。只有root可以绑定到<1024的端口,而它不能在sudo上工作的原因可能是路径或Python环境问题。不知道你试过什么;但只需将nginx安装为root,以确保其在端口80上运行(默认)。在此配置中,服务器将在
http://api.example.com/
;下一步,然后。好的,我让uwsgi运行了,但是我应该把nginx配置放在哪里?我应该用什么来代替你的应用程序吗?顺便谢谢你的帮助!有你?它告诉你要改变什么。如果您使用的是基于debian的系统(如ubuntu),那么配置将在
/etc/nginx/sites available
中。好的,我将其添加到sites available中的默认文件中,但获取502坏网关nginx 1.1.19这是不正确的。根据Flask文档:“默认值为5000或服务器名称配置变量(如果存在)中定义的端口。”