首页 > 解决方案 > 如何在不为每个页面定义新规则的情况下使 ProxyPass 适用于所有页面

问题描述

我对设置 apache 配置非常陌生。这些文档对我来说没有多大意义,我有一个节点应用程序在一个用作网站的端口上运行,但我希望能够通过我的域连接到它。我一直在环顾四周,并认为我需要使用 ProxyPass 将流量从端口 443 (https) 重定向到应用程序正在运行的端口(我已经将 apache 用于其他东西,所以我不想切换)。它通常可以工作,但是有没有办法只制作一个处理所有页面的 ProxyPass 规则(例如,我去https://example.com/它将使用https://localhost:4450/,如果我去https://example.com/example它将使用https://localhost:4450/example和所有其他页面)。

我认为我需要一个 RewriteRule,但我真的不明白如何/使用它来获取页面(无论是第一个还是没有)。

标签: node.jsapache2mod-proxy

解决方案


您只需将 apache 作为反向代理运行,这是一个示例配置:

<VirtualHost *:443>

 SSLEngine On
 SSLCertificateFile /etc/apache2/ssl/file.pem
 ProxyPreserveHost On
 ServerName localhost

 ProxyPass / http://0.0.0.0:4450/
 ProxyPassReverse / http://0.0.0.0:4450/

</VirtualHost>

你必须启用这样的代理模块

a2enmod proxy
a2enmod proxy_http

推荐阅读