python-尝试在Apache后面运行CherryPy时出现403错误
作者:互联网
我正在尝试使用Cherry_Py文档(BehindApache,ModRewrite)中所述的mod_rewrite在Apache后面运行CherryPy,但它不起作用.
编辑:以前,我对这个问题的描述有些不准确.好像我在某些尝试中忘了重启Apache.我已对问题作了重大修改.
当我运行程序(一个非常简单的“ hello world”程序,类似于CherryPy随附的第一个教程文件)时,它似乎可以正常工作.如果从服务器运行curl“ http://127.0.0.1:8080”,则可以看到输出,并且在CherryPy日志中可以看到它的某种记录.
但是,如果尝试从浏览器访问该站点,则会收到403 Forbidden错误,提示“您无权访问此服务器上的/”.我在CherryPy日志中看不到任何记录.我尝试将RewriteRule(RewriteRule ^(.*)http://127.0.0.1:8080 $1 [proxy])放在我的httpd.conf文件的相应VirtualHost部分中,无论是否带斜杠,而且两次都出现相同的错误.在我的Apache错误日志中,我看到这样的行:
[Mon Sep 27 15:54:11 2010] [error] [client 123.45.67.89] attempt to make remote request from mod_rewrite without proxy enabled: proxy:http://127.0.0.1:8080/
我尝试将RewriteRule放在站点的.htaccess文件中,但出现404 Not Found错误,并在错误日志中包含以下行:
[Mon Sep 27 13:31:54 2010] [error] [client 123.45.67.89] Attempt to serve directory: proxy:http://127.0.0.1:8080/
我仍然在CherryPy日志中没有看到任何条目.
我决定看看如果我在没有运行CherryPy的情况下尝试访问该站点会发生什么,我也得到了同样的结果.如果将行放在httpd.conf中,并且似乎完全不知道,则将Apache尝试与CherryPy程序通信失败.
这里有谁知道为什么会这样,怎么办?我已经尽力想了一切.我的站点在带有Debian 4.3.2-1.1,Apache 2.2.15,Python 2.6.5和CherryPy 3.1.2的DreamHost专用服务器上运行.
编辑2:lazy1,我尝试了您的建议,但没有帮助.我收到相同的403错误.
解决方法:
我以非常相似的方式在Apache后面运行CherryPy. Apache本身提供静态内容,而所有以’cp’开头的URL均由CherryPy提供. CherryPy正在端口8500上监听.这是httpd.conf中对我有用的东西:
RewriteMap escape int:escape
[...]
RewriteRule ^/cp\/(.*) http://localhost:8500/cp/${escape:$1} [L,P]
这在VirtualHost定义的内部(好吧,RewriteMap行在它的外部,但是您得到了图片)
显然,您必须确保要加载mod_proxy.还要检查RewriteRule documentation.
在我的CherryPy配置中,我有:
server.socket_host = "127.0.0.1"
server.socket_port = 8500
祝好运!
标签:apache,cherrypy,python 来源: https://codeday.me/bug/20191105/1997700.html