如何隐藏掉端口号(python flask实现的web服务器)

新手上路,请多包涵

因为最近在做小程序想调用自己的服务器,所以已经申请了ssl证书,并且以flask成功建成了,在小程序中不效准网址的话可以调用了,但是端口还是不知道在哪隐藏掉?或者是反向代理转一下?代理转一下的话:我想接入https://wodewangzhan.cn/ 的时候转到https://wodewangzhan.cn:5000/ 这样的,

这是我服务器的代码:

from flask import Flask
from flask import request
import urllib
import urllib.request
import urllib.parse
import json
from gevent.wsgi import WSGIServer


app = Flask(__name__)


@app.route('/',methods=['GET'])
def welcome():
    return 'Hello World!'
@app.route('/tu',methods=['GET'])
def welcome1():
    return 'Hello World!'
@app.route('/tu',methods=['POST'])
def zhongzhuan_url():
    # 配置您申请的APPKey
    appkey = "8080e5899b7e4534a8de2e6fb2b3363e"
    url = "http://www.tuling123.com/openapi/api"
    user_txt = request.form['info']
    user_id=request.form['userid']


    if user_txt:
        # dict1 = json.loads(a)
        # return json.dumps(dict1["data"])

        params = {
            "key": appkey,  # 您申请到的本接口专用的APPKEY
            "info": user_txt,  # 要发送给机器人的内容,不要超过30个字符
            "dtype": "",  # 返回的数据的格式,json或xml,默认为json
            "loc": "",  # 地点,如北京中关村
            "lon": "",  # 经度,东经116.234632(小数点后保留6位),需要写为116234632
            "lat": "",  # 纬度,北纬40.234632(小数点后保留6位),需要写为40234632
            "userid": user_id,  # 1~32位,此userid针对您自己的每一个用户,用于上下文的关联

        }
        params = urllib.parse.urlencode(params)
        f = urllib.request.urlopen("%s?%s" % (url, params))
        content = f.read().decode("UTF-8")
        # res = json.loads(content)
        # print(content)
        return content

    else:
        return "你好 我的小可爱"
    # return "hello"

if __name__ == '__main__':
    # app.debug = True
    context=('../zhengshu/1_bundle.crt','../zhengshu/2_key.key')
    app.run('0.0.0.0',threaded=True,ssl_context=context)

图片描述
外网在访问我的网站的时候也是可以访问的

只是完蛋的是。。。微信小程序不让出现端口。。。我这个5000要怎么隐藏掉呢。。。。我曾经试过https://www.itbulu.com/hide-f... 这个的方法,用nginx反向代理,但是这个只能将我http的网址转到5000的端口,在https的时候不响应的

location / {
#try_files $uri $uri/ =404;
proxy_pass http://127.0.0.1:5000;
}

到底要怎么办,求指点。。。

阅读 7.3k
2 个回答

最简单的方法:

if __name__ == '__main__':
    # app.debug = True
    context=('../zhengshu/1_bundle.crt','../zhengshu/2_key.key')
    app.run(host='0.0.0.0', post=80, threaded=True,ssl_context=context)

修改一下 app.run() 的参数即可。

你把nginx那里配置 https 了吗?如果没有配置怎么能响应 https 呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题