1

我在 localhost 的 8001 端口和 apache2 上使用 mod_proxy 运行 twisted.web.server。Apache根据以下配置设置为代理

http://localhost/jarvis ----> http://localhost:8001/

此规则的 httpd 配置是

ProxyPass /jarvis http://localhost:8001/
ProxyPassReverse /jarvis http://localhost:8001/

扭曲的应用程序的服务器配置代码片段如下:

if __name__ == '__main__':
root = Resource()
root.putChild("clientauth", boshProtocol())
logging.basicConfig()
factory = Site(root)
reactor.listenTCP(8001, factory)
reactor.run()

当我去

http://localhost:8001/clientauth 

它按预期运行。但是,当我使用

http://localhost/jarvis/clientauth

它给出错误 - “没有这样的子资源。” 据我了解 - 请求已正确代理到扭曲的 Web 服务器。但是为什么子资源没有被识别呢?

4

1 回答 1

1

您缺少 RewriteRule。我还没有测试过,但你的问题的解决方法或多或少是这样的:

RewriteRule ^/jarvis/(.*) /$1

确保启用了 mod_rewrite。

这是我通常用作参考的链接:http ://httpd.apache.org/docs/2.0/misc/rewriteguide.html

祝你好运!

于 2012-12-28T11:07:54.377 回答