我有一个使用 apache 和 mod_wsgi 部署的基于 django 的网站。我需要开发一个基于 SOAP 的 web 服务,并使用相同的端口 (80) 将它与我的 django 项目一起托管。
所以我读过关于 spyne 的文章: http ://spyne.io/docs/2.10/manual/02_helloworld.html?highlight=django 似乎它符合我的需要。我只是找不到如何使用 apache 部署它。
最终你需要得到:
...
application = WsgiApplication(app)
也就是说,一个 WSGI 脚本文件,它构建您的应用程序并将其公开,application
而不是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 服务。