【问题标题】:routing apache server to express.js server将 apache 服务器路由到 express.js 服务器
【发布时间】:2019-11-15 08:13:13
【问题描述】:

我建立了一个节点快递服务器。它运行没有任何问题:http://uniformflow.com

const app = express();
const port = process.env.PORT || 3000;
app.listen(port, () => console.log('listening on ' + port));

最近,我从letsencrypt获得了一个ssl证书。我最终拥有了一个安全的 apache 服务器,您可以在 https://www.uniformflow.com 上查看它

此时,我假设我的 express 服务器侦听 http 端口。当有人使用 https 端口发送请求时,它会转到我的 apache 服务器 /var/www 目录。我应该如何将此请求路由到我的节点服务器?

【问题讨论】:

    标签: node.js apache express proxy routing


    【解决方案1】:

    在 Apache 中,没有对 php 或 perl 等节点的模块支持。所以你应该使用 Apache 代理模块。您可以使用sudo a2enmod proxy proxy_http 启用它,然后在/etc/apche2/sites-availables 中更改其配置:

    <VirtualHost *:80>
        ServerAdmin admin@uniformflow.com
        ServerName uniformflow.com
        ServerAlias www.uniformflow.com 
    
        ProxyRequests off
    
        <Proxy *>
            Order deny,allow
            Allow from all
        </Proxy>
    
        <Location />
            ProxyPass http://localhost:3000/
            ProxyPassReverse http://localhost:3000/
        </Location>
    </VirtualHost>
    

    那么你应该重新启动 apache 服务器。 我认为最好使用 Nginx,它非常简单,我还为您处理 ssl 连接。

    【讨论】:

    • 感谢您的快速回复,我已经在几个指南中看到了 a2enmod。我正在使用 Amazon Linux 2 AMI,它给了我错误:sudo: a2enmod: command not found.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    相关资源
    最近更新 更多