Estoy lidiando con la deposición del proyecto realizada en FastAPI a un servidor ubuntu remoto. Intentaré ejecutar el proyecto desde la terminal (usando la conexión SSH) mediante el comando
gunicorn -k uvicorn.workers.UvicornWorker main:appla salida es
gunicorn -k uvicorn.workers.UvicornWorker main:app [2020-07-14 15:24:28 +0000] [23102] [INFO] Starting gunicorn 20.0.4 [2020-07-14 15:24:28 +0000] [23102] [INFO] Listening at: http://127.0.0.1:8000 (23102) [2020-07-14 15:24:28 +0000] [23102] [INFO] Using worker: uvicorn.workers.UvicornWorker [2020-07-14 15:24:28 +0000] [23104] [INFO] Booting worker with pid: 23104 [2020-07-14 15:24:28 +0000] [23104] [INFO] Started server process [23104] [2020-07-14 15:24:28 +0000] [23104] [INFO] Waiting for application startup. [2020-07-14 15:24:28 +0000] [23104] [INFO] Application startup complete.Pero necesito que el proyecto esté disponible en la dirección IP del servidor. Si intento algo como
uvicorn main:app --host 66.226.247.55 --port 8000yo obtengo
INFO: Started server process [23308] INFO: Waiting for application startup. INFO: Connected to database postgresql://recognition:********@localhost:5432/reco INFO: Application startup complete. ERROR: [Errno 99] error while attempting to bind on address ('66.226.247.55', 8000): cannot assign requested address INFO: Waiting for application shutdown. INFO: Disconnected from database postgresql://recognition:********@localhost:5432/reco INFO: Application shutdown complete.Donde 66.226.247.55 - dirección IP externa de las instancias de la plataforma de nube de Google ¿Cómo inicio un proyecto para que se pueda acceder a él a través de IP?
--host debe ser la dirección local de su servidor GCP.
uvicorn main:app --host 0.0.0.0 --port 8000 y ahora accede a la aplicación por http://66.226.247.55:8000
Nota: debe abrir su puerto 8000 del servidor GCP.
Si está utilizando el servidor nginx
cree un archivo en /etc/nginx/sites-enabled/ create file toque fastapi_nginx copie el código en el archivo y ajústelo en consecuencia
server{ listen 80; server_name "your public ip"; location / { proxy_pass http://127.0.0.1:8000; #localhost } }Esto debería redirigir a su IP pública
No puede iniciar su aplicación API rápida en su local a su servidor remoto en GCP.
Debes implementar tu aplicación en GCP. En otras palabras, debe ejecutar ese comando en un servidor remoto, no en su host local.