我嘗試使用mod_rewrite在CherryPy後面運行CherryPy,如CherryPy文檔(BehindApache,ModRewrite)中所述,它不起作用。嘗試在Apache後面運行CherryPy時出現403錯誤
編輯:早些時候,我對這個問題的描述有些不準確。似乎我忘記了在我的一些嘗試中重新啓動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的錯誤日誌,我看到這樣的臺詞:
[週一09月27日15時54分11秒2010] [錯誤] [客戶123.45.67.89]試圖使mod_rewrite的從遠程請求沒有啓用代理:代理:HTTP://127.0.0.1:8080/
我試圖把重寫規則在我的網站的.htaccess文件,而是和我有404未找到錯誤,在我的錯誤日誌中這樣的行:
[Mon Sep 27 13:31:54 2010] [error] [client 123.45.67.89]嘗試服務目錄:proxy:http://127.0.0.1:8080/
我仍然沒有在CherryPy日誌中看到任何條目。
我決定看看會發生什麼,如果我試圖訪問該網站沒有CherryPy運行,我得到了同樣的事情。就好像Apache嘗試與CherryPy程序通信不成功,如果我將該行放入httpd.conf中,並且在將該行放入.htaccess時完全不知道它。
有沒有人在這裏知道爲什麼會發生這種情況,該怎麼辦?我嘗試了所有我能想到的。我的網站運行在Debian 4.3.2-1.1,Apache 2.2.15,Python 2.6.5和CherryPy 3.1.2的DreamHost專用服務器上。
編輯2: lazy1,我試過了你的建議,它沒有幫助。我得到相同的403錯誤。
我試圖啓用mod_proxy,然後每當我嘗試訪問我的網站的域上的任何東西,我得到一個500錯誤。我不知道爲什麼會發生這種情況。沒有任何東西會被添加錯誤日誌。無論如何,我嘗試了你的建議,但沒有奏效。 – 2010-09-30 18:17:45
是否有任何特定的選項需要在mod_proxy中設置才能正常工作?我不是很熟悉它。 – 2010-09-30 18:23:11
確保你有mod_proxy和mod_proxy_http;看到更多的mod_proxy文檔: – 2010-09-30 18:41:43