San*_*jay 1 python flask namecheap
例如,我想在http://api.domain.com上运行 flask-app 。但是,我不知道该怎么做,flask 文档也没有帮助。我正在通过 SSH 使用共享的 namecheap Web 服务器来运行 python。我打开了 8080、8181 和 8282 端口。
服务器端代码:
from flask import Flask
from flask import Blueprint
app = Flask(__name__)
app.config['SERVER_NAME'] = 'domain.com'
@app.route('/status')
def status():
return 'Status : Online'
bp = Blueprint('subdomain', __name__, subdomain="api")
app.register_blueprint(bp)
if __name__ == '__main__':
app.run(host=app.config["SERVER_NAME"],port=8181,debug=True)
Run Code Online (Sandbox Code Playgroud)
当我访问http://www.api.domain.com/status 时,它返回 404 错误。SSH 控制台上不显示任何内容。
如果非常感谢任何帮助。
第一件事:
http(即没有 SSL 证书的 Web 服务器)是不安全的。您应该设置一个证书并始终使用 443 端口到外部。
然后,在 namecheap 上,您需要定义一个 CNAME 条目以指向子域。
在 Namecheap 中,单击域 -> 管理,然后单击高级 DNS
新建一条记录,Type选择CNAME,HOST输入子域名(只是顶级),然后你服务器所在的IP作为值(TTL(生存时间)是改变的时间)当您下次想更改它时,1, 10 分钟对于调试内容很有用,但无论如何 DNS 可能不尊重...)
等待几分钟,您应该能够通过子域名访问您的服务器。
现在,如果您使用与网络服务器相同的 IP,但使用不同的端口,那基本上不会做您想做的事。DNS 会将子域流量转发到您的(相同)服务器 IP,因此如果您的网络服务器在端口 443 上,您也将通过https://api.domain.com访问它。如果您的 API 使用端口 8080 或 8081,您将需要始终指定实际访问子域(即 api.domain.com:8080 )处的 API 服务器的端口。
DNS 只是将子域名转发到您告诉它的 IP。