将 Apache 转发到 Django 开发服务器

将 Apache 转发到 Django 开发服务器

编辑:

我刚刚用 Nginx 在 Apache 前面做代理。设置起来更容易,而且确实有效。


我正在尝试让 apache 将端口 80 上的所有请求转发到 127.0.0.1:8000,这是 django dev 服务器运行的地方。我认为我已经正确转发了,但是 127.0.0.1:8000 没有由 apache 运行,这肯定是个问题?

我在 ubuntu vmware 实例中运行 django dev 服务器,并且我希望办公室里的其他人能够看到正在开发的应用程序,而不必将任何内容推送到我们实际的开发/登台服务器。

现在虚拟机为自己获取一个 IP,当我使用默认 apache 配置将浏览器指向该 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>

我得到的只是 404,并且在 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

答案1

那个更好吗?

<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 吗?错误消息是否仍然与目录有关?

答案2

ProxyPass 采用路径而不是通配符,请尝试

ProxyPass /  http://127.0.0.1:8000
ProxyPassReverse /  http://127.0.0.1:8000

答案3

要检查 127.0.0.1 (8000) 上运行的内容,您可以:

curl -I http://127.0.0.1:8000 | grep Server

如果是 Apache,那么其他 Web 服务器应该无法正常启动。但是查看您对其他解决方案的回答后,我们可以怀疑这一点。

如果是 Apache,只需搜索/编辑 Listen 行,即可192.168.1.142:80

相关内容