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

How can I make a ProxyPass work for all pages without defining a new rule for each page

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

我想我需要一个 RewriteRule,但我不太明白如何使用它来获取页面(第一个 / 或 none 之后的页面)。

您只需 运行 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