如何在不为每个页面定义新规则的情况下使 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
我对设置 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