Apache/Ubuntu 上的反向代理

Posted

技术标签:

【中文标题】Apache/Ubuntu 上的反向代理【英文标题】:Reverse Proxy on Apache/Ubuntu 【发布时间】:2020-07-12 01:17:45 【问题描述】:

我需要使用 Lets Encrypt 为多个应用服务器设置反向代理。我安装了 Webagte 服务器:

Ubuntu Server 18.04 LTS
Apache 2.4

Apache 运行正常并显示“第一”页。 但是当我把这个:

<VirtualHost *:80>
ServerAdmin "my@mail.tld"
ServerName "app1.mydomain.tld"
DocumentRoot "/var/www/app1.mydomain.tld"
ProxyPreserveHost On
ProxyPass "/.well-known/" !
ProxyPass "/test-broker/" !
ProxyPass "/" "http://192.168.1.21:20000/"
ProxyPassReverse "/" "http://192.168.1.21:20000/"
</VirtualHost>

文件 /etc/apache2/sitest-enabled/000-default.conf 并打开我的浏览器页面我得到 ERR_CONNECTION_REFUSED。

清单:

/var/www/app1.mydomain.tld 存在。 http://192.168.1.21:20000/ 工作。 DNS 中的 app1.mydomain.tld 存在并指向 webgate 服务器。 a2enmod 代理已启用。 a2enmod proxy_http 已启用。 a2enmod proxy_ajp 已启用。 a2enmod 重写已启用。 a2enmod deflate 已启用。 a2enmod 标头已启用。 a2enmod proxy_balancer 已启用。 a2enmod proxy_connect 已启用。 a2enmod proxy_html 已启用。

感谢您的帮助。

【问题讨论】:

可能是客户端问题。你可以从另一个浏览器和或另一台机器上试试吗?您可以通过命令行使用curl 来访问它吗? downforeveryoneorjustme.com 【参考方案1】:

您在那里的虚拟主机只会用于 HTTP 流量,因此服务器拒绝来自浏览器在标准 HTTPS 端口 443 上的连接。

您将需要一个额外的 443 &lt;VirtualHost *:443&gt; 虚拟主机,其中包含根据 Apache SSL HowTo 的 ssl 配置。

【讨论】:

以上是关于Apache/Ubuntu 上的反向代理的主要内容,如果未能解决你的问题,请参考以下文章

IIS上的反向代理

nginx反向代理与负载均衡

反向代理负载均衡之APACHE

nginx实现反向代理及负载均衡

转什么是反向代理,如何区别反向与正向代理

WebNginx 反向代理与负载均衡