【问题标题】:Apache reverse proxy setup (for node.js application) not working?Apache 反向代理设置(用于 node.js 应用程序)不起作用?
【发布时间】:2015-12-16 04:22:16
【问题描述】:

我想做什么

运行命令 (export PORT=3000 && node server.js) 后,我的 node.js 应用程序 (StackEdit) 服务于:http://example.com:3000/

考虑到 Apache 已经使用服务器上的 80 端口,命令 (export PORT=80 && node server.js) 将无法工作。

由于我是 Node.js 的新手,让 node.js 应用程序在 http://example.com/(即端口 80)可用的​​一种简单方法是将 Apache 设置为反向代理。

这是我尝试过的

/etc/apache2/sites-available/example.com.conf

试用(一):

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example.com/public
    ErrorLog /var/www/example.com/logs/error.log
    CustomLog /var/www/editor.aahanblog.com/logs/access.log combined

    ProxyPass / http://example.com:3000/
    ProxyPassReverse / http://example.com:3000/
</VirtualHost>

这只是显示public 目录的目录列表。因此,在这种情况下,请求没有到达 node.js 应用程序。

试用(2):

<VirtualHost *:80>
    ServerName example.com
    ServerAlias *.example.com
    DocumentRoot /var/www/example.com/public
    ErrorLog /var/www/example.com/logs/error.log
    CustomLog /var/www/example.com/logs/access.log combined

    ProxyRequests off

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    <Location /var/www/example.com/public>
        ProxyPass http://mydomain:3000/
        ProxyPassReverse http://mydomain:3000/
    </Location>
</VirtualHost>

这也不起作用。它会将我带到一些默认的 apache 页面。

我在这里缺少什么?

【问题讨论】:

    标签: node.js apache proxy apache2 reverse-proxy


    【解决方案1】:

    将您的位置指令更改为

    <Location /> from <Location /var/www/example.com/public>
    

    基本上,Location 指令是 URL 路径组件的前缀

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多