我有一个在 Ubuntu 20.04 服务器上运行的 Flask Web 应用程序 我按如下方式运行 -
if __name__ == '__main__':
app.run(host='0.0.0.0')
我想使用应用名称访问它 -
http://[app.name]:5000
而不是 http://0.0.0.0:5000
,即使用服务器的 IP 地址。
我尝试了以下 - 将主机名从
更改$ sudo nano /etc/hostname
并且还更改了 hosts
文件
$ sudo nano /etc/hosts
127.0.0.1 app.name
[ip address] app.name
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
我已重新启动服务器并在 main
if __name__ == '__main__':
app.config['SERVER_NAME']='app.name:5000'
app.run()
这个方法不行,你能帮我找出问题所在吗?
提前致谢!
答案 0 :(得分:0)
您不需要更改 SERVER_NAME
- 0.0.0.0 意味着它接受来自任何地方的连接(而不是 127.0.0.1 只接受本地主机连接)。
您的 /etc/hosts
文件看起来是正确的 - 只要它包含该 127.0.0.1 app.name
条目,您就可以开始了。
然后在您的应用文件中,保留
if __name__ == '__main__':
app.run(host='0.0.0.0')
这是一些示例代码:
test.py:
from flask import *
app = Flask(__name__)
@app.route("/")
def hi():
return "bye"
if __name__ == '__main__':
app.run(host='0.0.0.0')
/etc/hosts:
127.0.0.1 app.name
访问 http://app.name:5000/ 有效。