我是Python的绿色手。我有一个简单的web服务与python如下:
enter code here
import soaplib
from soaplib.core.service import rpc, DefinitionBase
from soaplib.core.model.primitive import String, Integer
from soaplib.core.server import wsgi
from soaplib.core.model.clazz import Array
from soaplib.core.service import soap
class HelloWorldService(DefinitionBase):
@soap(String,Integer,_returns=Array(String))
def say_hello(self,name,times):
results = []
for i in range(0,times):
results.append('Hello, %s'%name)
return results
if __name__=='__main__':
try:
from wsgiref.simple_server import make_server
soap_application = soaplib.core.Application([HelloWorldService], 'tns')
wsgi_application = wsgi.Application(soap_application)
server = make_server('10.44.138.231', 9999, wsgi_application)
server.serve_forever()
except ImportError:
print "Error: example server code requires Python >= 2.5"
当我在localhost中访问服务时速度非常快,但是从局域网中的另一台主机变得非常慢。
所以我想在apache中部署这个程序,但看起来很难,我在谷歌搜索这个很长一段时间,现在让我很累。谁可以给我一个帮助,谢谢
答案 0 :(得分:1)
我建议使用mod_wsgi
(而不是mod_python
),因为WSGI是托管Python Web应用程序的标准方法。
在你的情况下,你需要在全局范围内有一个名为application
的函数:
# ....
return results
soap_application = soaplib.core.Application([HelloWorldService], 'tns')
application = wsgi.Application(soap_application)
if __name__ == "__main__":
# ....
然后在Apache中启用mod_wsgi并在(WSGIScriptAlias
是主要的)中添加指令。如果您之前已经配置了Apache,则可以合理地访问help pages。
答案 1 :(得分:0)