我有一台烧瓶服务器在5000端口运行,没问题。我可以在http://example.com:5000访问它
但是在http://example.com可以简单地访问它吗?我想这意味着我必须把港口从5000改成80。但当我在Flask上尝试时,当我运行它时会收到这个错误消息。
Traceback (most recent call last):
File "xxxxxx.py", line 31, in <module>
app.run(host="0.0.0.0", port=int("80"), debug=True)
File "/usr/local/lib/python2.6/dist-packages/flask/app.py", line 772, in run
run_simple(host, port, self, **options)
File "/usr/local/lib/python2.6/dist-packages/werkzeug/serving.py", line 706, in run_simple
test_socket.bind((hostname, port))
File "<string>", line 1, in bind
socket.error: [Errno 98] Address already in use
运行lsof -i :80
返回
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 467 root 3u IPv4 92108840 0t0 TCP *:www (LISTEN)
apache2 4413 www-data 3u IPv4 92108840 0t0 TCP *:www (LISTEN)
apache2 14346 www-data 3u IPv4 92108840 0t0 TCP *:www (LISTEN)
apache2 14570 www-data 3u IPv4 92108840 0t0 TCP *:www (LISTEN)
apache2 14571 www-data 3u IPv4 92108840 0t0 TCP *:www (LISTEN)
apache2 14573 www-data 3u IPv4 92108840 0t0 TCP *:www (LISTEN)
我需要先终止这些进程吗?那安全吗?或者,有没有其他方法让Flask在端口5000上运行,但让主网站域以某种方式重定向?
1-停止使用端口80的其他应用程序。 2-使用端口80运行应用程序:
所以它会抛出错误消息,因为您在端口80上运行了
apache2
。如果这是为了发展,我就把它留在5000号港。
如果是为了生产:
不推荐
apache2
不推荐,因为它在文件中说明:
推荐
HTTP
通过apache2
传输到烧瓶。这样,
apache2
就可以处理所有静态文件(这比内置在Flask中的调试服务器要好得多),并充当动态内容的反向代理,将这些请求传递给Flask。关于使用Apache+mod wsgi设置烧瓶的官方文档。
编辑1-对@Djack的澄清
当请求到达端口80(
HTTP
)或端口443(HTTPS
)上的服务器时,像Apache或Nginx这样的web服务器将处理请求的连接并确定如何处理它。在我们的例子中,应该将接收到的请求配置为通过WSGI协议传递给Flask,并由Python代码处理。这是“动态”部分。像上面这样配置web服务器有一些优点
对于外部可见的服务器,如果不使用apache或其他web服务器,只需键入
相关问题 更多 >
编程相关推荐