首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IIS中托管带有域名的Flask应用程序的最佳实践

在IIS中托管带有域名的Flask应用程序的最佳实践
EN

Stack Overflow用户
提问于 2020-10-19 07:54:40
回答 1查看 1.4K关注 0票数 1

我开发了一个flask应用程序(使用SQL Server db),它运行在本地的企业防火墙后面。现在我们需要本地网络之外的其他用户来访问这个web应用程序。由于我使用Server (带有链接服务器选项)连接到网络中的其他本地db (因为我们没有API),所以我希望在IIS本身中承载web应用程序(使用本教程)。请告知:

  1. 使用IIS主机安全吗?任何最佳做法,以保护我们的本地网络,以防任何渗透。我可以在虚拟机中运行web服务器吗?会让它更安全吗?
  2. 我还想购买一个域名,并与我的web服务器IP地址,这将经常变化-任何供应商的建议,我可以动态更新,当我的网络服务器的IP改变。

我期待学习的最佳做法,主机烧瓶网络应用程序本地使用IIS与一个域名。谢谢你的投入!

EN

回答 1

Stack Overflow用户

发布于 2020-10-20 03:20:35

您可以按照以下步骤在iis上托管烧瓶应用程序:

首先,您需要在服务器上安装python、wfastcgi和烧瓶。

从下面的链接下载python:

https://www.python.org/downloads/

注意:如果可能的话,请使用上面3.6的python版本。

安装python之后,以管理员的身份安装wfastcgi.run命令提示符,并运行以下命令:

代码语言:javascript
复制
pip install wfastcgi

wfastcgi-enable

下面是我的烧瓶例子:

代码语言:javascript
复制
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello from FastCGI via IIS!"
if __name__ == "__main__":
    app.run()

在创建一个应用程序以运行它之后,使用以下命令:

代码语言:javascript
复制
python app.py

现在启用iis的cgi功能:

  • 打开iis.右键单击服务器名并选择add site。

  • 输入网站名称、物理路径和站点绑定。
  • 添加站点后,选择站点名称并从中间窗格中选择处理程序映射功能。

  • 从操作窗格中单击“添加模块映射”。

  • 可执行路径值:

C:\Python37-32\python.exe|C:\Python37-32\Lib\site-packages\wfastcgi.py

  • 单击“请求限制”。确保“仅当请求映射到:”复选框未选中时才调用处理程序:

  • 在此单击“是”:

  • 现在返回并选择应用程序设置功能。

  • 单击“从操作窗格中添加”。

  • 设置PYTHONPATH变量(这是站点文件夹路径):

  • WSGI_HANDLER (我的酒瓶应用程序名为app.py,因此值为app.app -如果您的应用程序名为site.py,则为site.app或类似的):

单击“确定”并浏览到您的网站。

如果要使用站点配置域名,则需要将站点绑定设置如下:

并将IP和域名绑定到位于“C:\Windows\System32 32\drivers\etc\host”的恶意域名中。

IP主机名

注意:这只在本地起作用。如果要为internet用户设置域名,则需要购买域名和公共IP,并将IP与域名绑定。

要访问SQL server,iis用户没有足够的权限,您需要配置use,后者具有使用iis应用程序池访问SQL服务器的足够权限。

  • 打开iis mnager->选择应用程序池
  • 从“操作”窗格中选择“预先”设置。
  • 在标识中,检查自定义单选按钮并输入用户名和密码。

注意:确保将iis_iusrs和iusr权限分配给站点和python文件夹。

关于更多细节,您可以参考下面的链接:

https://learn.microsoft.com/en-us/visualstudio/python/configure-web-apps-for-iis-windows?view=vs-2019

https://forums.iis.net/post/2159167.aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64423237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档