编辑:
我刚刚和Nginx一起在Apache前做代理。 更容易设置,它实际上工作。
我试图让Apache将端口80上的所有请求转发到127.0.0.1:8000,这是django开发服务器运行的地方。 我想我有它转发正常,但一定有一个问题127.0.0.1:8000不是由Apache运行?
我在一个Ubuntu vmware实例中运行django dev服务器,我让办公室里的其他人看到正在开发的应用程序,而不必向我们的实际开发/登台服务器推广任何东西。
现在虚拟机为自己挑选一个IP,当我用浏览器指向那个带有def apacheconfiguration的URL时,我得到默认的apache页面。
我已经把httpd.conf文件改成了下面这个文件,试图把请求转发到django dev服务器:
ServerName localhost <Proxy *> Order deny,allow Allow from all </Proxy> <VirtualHost *> ServerName localhost ServerAdmin [email protected] ProxyRequests off ProxyPass * http://127.0.0.1:8000 </VirtualHost>
我得到的是404s与此,并在error.log我得到以下(192.168.1.101是我的电脑的IP 192.168.1.142是虚拟机的IP):
[Mon Mar 08 08:42:30 2010] [error] [client 192.168.1.101] File does not exist: /htdocs
那个更好吗?
<VirtualHost *> ServerName localhost ServerAdmin [email protected] ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass * http://127.0.0.1:8000 ProxyPassReverse * http://127.0.0.1:8000 </VirtualHost>
你重新启动Apache吗? 错误消息仍然是关于目录?
ProxyPass的path不是通配符,请尝试
ProxyPass / http://127.0.0.1:8000 ProxyPassReverse / http://127.0.0.1:8000
要检查在127.0.0.1(8000)上运行的是什么,您可以:
curl -I http://127.0.0.1:8000 | grep Server
如果是apache,那么其他的web服务器不应该开始好。 但看看你的答案,我们可以怀疑的其他解决scheme。
如果是apache,只需要search/编辑Listen线路到192.168.1.142:80