从服务器1运行Flask,使用服务器2的主机

0 投票
1 回答
524 浏览
提问于 2025-04-17 20:21

我有两台服务器。请问能不能在比如说 (192.168.1.1) 这台服务器上运行 Flask,同时把主机设置为 "192.168.1.2" 呢?

我遇到了错误

Traceback (most recent call last):
  File "app.py", line 38, in <module>
    debug=True
  File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 772, in run
    run_simple(host, port, self, **options)
  File "/usr/local/lib/python2.7/site-packages/werkzeug/serving.py", line 706, in run_simple
    test_socket.bind((hostname, port))
  File "/usr/local/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 99] Cannot assign requested address

这是我的代码,来自于比如说 192.168.1.1

from flask import Flask, render_template, request, jsonify

app = Flask(__name__)


@app.route('/index')
def index():
    return render_template('index.html')

@app.route('/_add_numbers')
def add_numbers():
    a = request.args.get('a', 0, type=int)
    b = request.args.get('b', 0, type=int)
    return jsonify(result=a + b)

if __name__ == '__main__':
    app.run(
        host="192.168.1.2",
        port=int("80"),
        debug=True
    )

1 个回答

1

这似乎是对网络工作原理的误解……你不能把另一个服务器的IP地址当作自己的,原因就像你不能邀请人们去你邻居的家,然后指望他们能到达的门口一样。

如果你想在两个服务器上处理网络请求,你需要用到负载均衡。或者,使用反向代理,它可以把请求从一个服务器转发到另一个服务器。

撰写回答