我有 2 个烧瓶容器。一个在端口 80 上侦听 http 调用,另一个在端口 443 上侦听 https 调用。 两者都应该响应 GET 和 POST 调用。 http(端口 80)服务器适用于 GET 和 POST。 https(端口 443)服务器对于 GET 调用工作正常,但由于某些不清楚的原因,似乎 POST 调用在某处被阻止并且不会通过 Flask 服务器。
这是httpflask服务器的app.py:
from flask import Flask, request
import requests
app = Flask(__name__)
@app.route('/', defaults={'u_path': ''}, methods=['GET',"POST"])
@app.route('/<path:u_path>', methods=['GET',"POST"])
def redirectChannels(u_path):
print(repr(u_path))
print(request.base_url)
print(request.url)
print(request.method)
print(request.values)
res = ""
if request.method == "GET":
ans = requests.get(request.url)
res = ans.text
elif request.method == "POST":
res = requests.post(request.url, data=request.values)
return res
@app.before_request
def log_request_info():
print('Headers: %s', request.headers)
print('Body: %s', request.get_data())
if __name__ == "__main__":
app.run(host ='0.0.0.0', port = 5000, debug = True)
这是httpsflask服务器的app.py:
from flask import Flask, request
import requests
import sys, traceback
import json
app = Flask(__name__)
@app.route('/', defaults={'u_path': ''}, methods=['GET','POST'])
@app.route('/<path:u_path>', methods=['GET','POST'])
def redirectChannels(u_path):
print(repr(u_path))
print(request.base_url)
print(request.url)
print(request.method)
print(request.values)
res = ""
if request.method == "GET":
ans = requests.get(request.url)
res = ans.text
elif request.method == "POST":
res = requests.post(request.url, data=request.values)
return res
@app.before_request
def log_request_info():
print('Headers: %s', request.headers)
print('Body: %s', request.get_data())
if __name__ == "__main__":
app.run(host ='0.0.0.0', port = 5000, debug = True, ssl_context='adhoc')
我实际上认为这可能与容器端口映射中的配置有关。当运行 docker ps 我得到这个: docker ps result
不确定我是否理解两个容器中 PORTS 下的 443/tcp,我相信这可能与我的问题有关。谁能解释一下?