Python 3.x 在fastapi的响应头中将服务器名称替换为假服务器名称
我使用uvicorn作为服务器,使用FastAPI运行应用程序。在Swagger中执行端点url时,以下消息显示在服务器响应的响应头中Python 3.x 在fastapi的响应头中将服务器名称替换为假服务器名称,python-3.x,fastapi,Python 3.x,Fastapi,我使用uvicorn作为服务器,使用FastAPI运行应用程序。在Swagger中执行端点url时,以下消息显示在服务器响应的响应头中 content-length: 122 content-type: application/json date: Sat12 Dec 2020 10:18:55 GMT server: uvicorn 如何将服务器名称更改为新名称,即server:firstproject? 下面的代码将未绑定的服务器名称与新名称连接起来 @app.middle
content-length: 122
content-type: application/json
date: Sat12 Dec 2020 10:18:55 GMT
server: uvicorn
如何将服务器名称更改为新名称,即server:firstproject?
下面的代码将未绑定的服务器名称与新名称连接起来
@app.middleware("http")
async def add_custom_header(request, call_next):
response = await call_next(request)
response.headers['server'] = 'firstproject'
return response
这将提供以下输出
content-length: 122
content-type: application/json
date: Sat12 Dec 2020 10:19:33 GMT
server: uvicornfirstproject
如何在响应头中将服务器名称更改为server:firstproject
编辑
在start_server.py中
import uvicorn
from app.main import app
if __name__ == "__main__":
uvicorn.run("start_server:app --header server:firstproject", host="0.0.0.0", port=8000, reload=True)
给出以下错误
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO: Started reloader process [15256] using statreload
ERROR: Error loading ASGI app. Attribute "app --header server:firstproject" not found in module "start_server".
我从Visual studio运行代码您可以在运行uvicorn时设置自定义标题
--标题文本
将自定义默认HTTP响应标题指定为名称:值对
当您这样运行它时,它将覆盖默认服务器名称
uvicorn我的应用程序:应用程序--头服务器:第一个项目
如果您是从python文件运行uvicorn。您需要将它们作为元组传递到列表中
如果名称=“\uuuuu main\uuuuuuuu”:
run(“my_app:app”,headers=[(“server”,“firstproject”)]))
我已经按照您的建议编辑了问题,以显示添加后的错误。您运行错误,我更新了我的答案。它在localhost中工作。当我将相同的代码推送到Linode并再次运行时,uvicorn显示在服务器名中,而不是假服务器名firstprojectHmm,这很奇怪。您是否在两个版本之间进行负载平衡?抱歉。在添加传递元组(python代码)和uvicorn my_app:app--header server:firstproject(运行期间)之后,我在linode中也得到了响应。感谢您的快速响应