Apache mod_proxy和Node Express呈现纯文本

时间:2015-07-03 13:18:21

标签: node.js apache express proxy mod-proxy

我正在使用Apache 2.2.12运行一个Web服务器作为绑定到端口80的默认Web服务器。 对于一个新项目,我需要通过端口80将Apaches绑定域之一代理到Node Express Server 4.7,它运行在端口4000上的同一台机器上。

单独提供的Express流程运行正常,预期结果正常。 意思是,当我访问my-domain.com:4000时,一切看起来都不错。

好的,所以我在Apache中设置了一个虚拟主机,它应该将my-domain.com代理到端口4000上的Express服务器。

我尝试代理localhost:4000或my-domain.com:4000,但Apache总是将Express响应呈现为纯文本,而不是真正的HTML。 这意味着我在浏览器中看到HTML-String而不是解析的网站。 当您通过检查器浏览源代码时,浏览器只会将Express字符串放在嵌套在预标记中的自己的html-wrapper中。

我的Apache-Config看起来像这样:

    <VirtualHost *:80>
       ServerName my-domain.com
       ProxyRequests Off
       <Proxy *>
         Order deny,allow
         Allow from all
       </Proxy>

      ProxyPass / http://localhost:4000/ 
      ProxyPassReverse / http://locahost:4000/
    </VirtualHost>

任何帮助或建议将不胜感激。 THX。

1 个答案:

答案 0 :(得分:0)

在apache2.conf中找到参数

设定:

    DefaultType text/plain

    DefaultType text/html

解决了。