运行子进程以返回从一个端口到另一个端口的重定向响应。
主要的py:
if __name__ == '__main__':
Popen(['python', '-m', 'https_redirect']) # Add this
uvicorn.run(
'main:app', port=443, host='0.0.0.0',
reload=True, reload_dirs=['html_files'],
ssl_keyfile='/etc/letsencrypt/live/my_domain/privkey.pem',
ssl_certfile='/etc/letsencrypt/live/my_domain/fullchain.pem')
https_重定向。py:
import uvicorn
from fastapi import FastAPI
from starlette.requests import Request
from starlette.responses import RedirectResponse
app = FastAPI()
@app.route('/{_:path}')
async def https_redirect(request: Request):
return RedirectResponse(request.url.replace(scheme='https'))
if __name__ == '__main__':
uvicorn.run('https_redirect:app', port=80, host='0.0.0.0')