【问题标题】:SOAP webservice with spyne, django and apache带有 spyne、django 和 apache 的 SOAP 网络服务
【发布时间】:2015-09-21 03:53:33
【问题描述】:

我有一个使用 apache 和 mod_wsgi 部署的基于 django 的网站。 我需要开发一个基于 SOAP 的 Web 服务,并使用相同的端口 (80) 将其托管在我的 django 项目中。

所以我读过关于 spyne 的文章: http://spyne.io/docs/2.10/manual/02_helloworld.html?highlight=django 好像很符合我的需求。我只是找不到如何使用 apache 部署它。

【问题讨论】:

    标签: django apache web service spyne


    【解决方案1】:

    最终你需要得到:

    ...
    
    application = WsgiApplication(app)
    

    也就是说,构建您的应用程序并将其公开为 application 的 WSGI 脚本文件,而不是文档中所说的 wsgi_app

    然后配置 mod_wsgi 类似:

    WSGIDaemonProcess soapapp
    WSGIScriptAlias /suburl /some/path/soapapp.wsgi \
        process-group=soapapp application-group=%{GLOBAL}
    
    <Directory /some/path/>
    <Files soapapp.wsgi>
    # Order allow,deny
    # Allow from all
    Require all granted
    </Files>
    </Directory>
    

    也就是说,为这个应用程序创建一个单独的守护进程组。将其挂载到子 URL 并委托它在单独的守护进程组中运行,而不是在您的 Django 应用程序所在的任何进程中运行。还要确保您设置了访问权限,以便 Apache 知道它允许从它所在的位置托管 WSGI 应用程序。

    然后您将在该子 URL 访问 SOAP 服务。

    【讨论】:

    • 如果 Spyne 应用程序需要与 Django 的 url 路由集成,则需要 Django 传输。这样,可以使用 Spyne 应用程序,而无需更改 mod_wsgi 端的任何内容。如果不需要,可以将 Spyne 应用程序导出为单独的 Wsgi 应用程序,然后可以使用 mod_wsgi 配置中的单独条目导出,如 Graham 所示。
    猜你喜欢
    • 1970-01-01
    • 2021-04-11
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 2014-09-13
    • 1970-01-01
    • 2012-12-07
    相关资源
    最近更新 更多