如何使用apache将一个端口上的所有呼叫重定向到另一个端口上的同一URL?

时间:2018-04-04 19:04:50

标签: node.js apache sails.js

我在默认端口1337上托管了sails.js应用程序。我在端口8080上有一个apache作为其代理:

[root@ip-192-168-0-XX conf.d]# cat nodetest.conf
Listen 8080

<VirtualHost 192.168.0.XX:8080>
    Options -Indexes
    ProxyRequests on
    ProxyPass / http://localhost:1337/
</VirtualHost>

Sails应用程序有一个API。例如,如果我想发布消息,请将其输入我的浏览器:

http://localhost:1337/Message/postMessage

我希望在端口8080上输入相同的地址时会发生这种情况。

http://localhost:8080/Message/postMessage

我对这个Apache的东西很陌生,所以我甚至不知道我现在要做的事情是什么?反向代理?常规代理?重定向?我只是不知道。

1 个答案:

答案 0 :(得分:0)

首先,如果您在同一台服务器上安装Apache托管其他网站,我想您真的只需要这样做。

如果您无意在使用Apache的同一服务器上运行其他站点,则可以通过在config / local.js文件中更改sails应用程序中的端口,直接在端口80或8080上直接命中Sails服务器。

更改

 // port: process.env.PORT || 1337,

 port: process.env.PORT || 80,

对于其他应用程序,例如负载平衡或基本代理,我认为nginx将是一个更好的解决方案。

使用Apache作为Sails代理的标准配置是这样的:

<VirtualHost *:8080>
    ServerName example.com
    ServerAlias www.example.com

    ProxyRequests off

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

    <Location />
        ProxyPass http://localhost:1337/
        ProxyPassReverse http://localhost:1337/
    </Location>
</VirtualHost>