Alojamiento Python Flask en el servidor IIS de Windows 10
Quiero alojar mi API Python Rest en el servidor IIS de Windows 10.
Primero intenté alojar una aplicación de muestra pero no pude hacerlo.
my_app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello IIS from Flask framework.'
@app.route('/Hello')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
web.config
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="C:\Program Files\Python39\python.exe|C:\Program Files\Python39\lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
</system.webServer>
<appSettings>
<add key="WSGI_HANDLER" value="my_app.app" /> <!-- {name_of_file}.{name_of_flask_app}-->
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\test" />
<add key="WSGI_LOG" value="C:\inetpub\wwwroot\test\app.log" />
</appSettings>
</configuration>
He probado los siguientes tutoriales, pero no me funcionan.
https://medium.com/@rajesh.r6r/deploying-a-python-flask-rest-api-on-iis-d8d9ebf886e9
https://www.youtube.com/watch?v=ma1UvzqF82Q&ab_channel=ShobhitWalia
Error HTTP 500.0 - Error interno del servidor: consulte la captura de pantalla del error
Necesito ayuda ... gracias
Respuestas
Si desea una aplicación de Python de host de IIS, debe instalar Python y luego debe agregar la asignación de módulos en IIS. Estos son los pasos:
Primero instale Python en su computadora.
Habilitar CGI:
Después de una instalación exitosa, verá "Restricciones de ISAPI y CGI" y asignaciones de controladores:
- Ingrese "Restricciones ISAPI y CGI", agregue una nueva restricción ISAPI o CGI:
- Ingrese "Asignaciones de controlador", luego agregue Asignación de módulo (es necesario agregar% S% S o se informará un error):
Finalmente podemos acceder con éxito a la aplicación Python:
ACTUALIZAR:
¿Puedes ver python en tus asignaciones de manejadores?
Este es mi web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
</configuration>
No hay nada en web.config. Todas mis configuraciones son para todo el IIS:
Haga clic en "Exploración de directorios":
Permitirle: