Bitnami Tomcat版本8.5.16-0非常旧的版本,如何通过服务器名进行代理

问题描述

我正在运行一个非常旧的bitnami堆栈(版本8.5.16-0),但现在无法对其进行更新。

我需要将其配置为使用ServerName代理到另一个端口中运行的另一个服务。

我尝试过此方法,但不起作用:

我已添加到/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf

<VirtualHost *:80>
    ServerName sub.mycompany.com

    ProxyPreserveHost On
    ProxyPass / http://localhost:3001/
    ProxyPassReverse / http://localhost:3001/
</VirtualHost>

因此,当我访问http://mycompany.com时,我需要它来继续访问tomcat的默认AJP代理配置。但是,当我访问http://sub.mycompany.com时,我需要代理端口3001上运行的该自定义服务。

我在做什么错了?

解决方法

Bitnami工程师您好,

var keywordIndex = Math.floor(Math.random() * keywords.length); selectedKeyword = keywords[keywordIndex]; 中添加自定义VirtualHost是执行此操作的正确方法。我刚刚启动了与您使用的相同的解决方案,并将其添加到该文件中

/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf

我没有在端口3001中运行服务,但是我将Apache配置为将连接重定向到google.com。重新启动Apache

<VirtualHost *:80>
    ServerName mydomain

    RewriteEngine On
    RewriteRule ^/(.*) https://www.google.com/$1 [R,L]
</VirtualHost>

我已验证配置正确

sudo /opt/bitnami/ctlscript.sh restart apache

如您所见,使用自定义VirtualHost的请求已重定向到www.google.com

为了调试您的问题,我将按照以下步骤操作:

  • 检查使用端口3001的服务器是否正常运行
bitnami@ip-172-31-57-221:/opt/bitnami$ curl -LI 35.168.7.34
HTTP/1.1 200 200
Date: Thu,20 Aug 2020 08:02:44 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Accept-Ranges: bytes
ETag: W/"3660-1499251067000"
Last-Modified: Wed,05 Jul 2017 10:37:47 GMT
Content-Type: text/html
Content-Length: 3660

bitnami@ip-172-31-57-221:/opt/bitnami$ curl -LI 35.168.7.34.nip.io
HTTP/1.1 302 Found
Date: Thu,20 Aug 2020 08:02:47 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Location: https://www.google.com/
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 200 OK
Content-Type: text/html; charset=ISO-8859-1
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Date: Thu,20 Aug 2020 08:02:47 GMT
Server: gws
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked
Expires: Thu,20 Aug 2020 08:02:47 GMT
Cache-Control: private
Set-Cookie: 1P_JAR=2020-08-20-08; expires=Sat,19-Sep-2020 08:02:47 GMT; path=/; domain=.google.com; Secure
Set-Cookie: NID=204=qoK5Dqh-YCXNgqKmQQVLwHmxmLc7Pa7xoWcPc5iNnb_AqNTdDffYK7dpjoLFalVKEaS-vsKRcNUeJlLkO3GN-jNI4BUGzT0V2--66luMecjNoUWXcriPM8UhX2KtEqFd3Qw2Iu9NE10qeAnvhbDHw34sLDnheaYokmEeUALrSpg; expires=Fri,19-Feb-2021 08:02:47 GMT; path=/; domain=.google.com; HttpOnly
Alt-Svc: h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
  • 确保对curl -LI localhost:3001 的请求正在使用您的自定义虚拟主机。您将需要确保在sub.mycompany.com文件中未将sub.mycompany.com设置为默认域,并且也没有在/opt/bitnami/apache2/conf/httpd.conf文件中包含该域。您可以尝试使用我上面发布的代码来测试虚拟主机。

  • 请记住在对配置进行任何更改后重新启动Apache

我希望这些信息对您有帮助

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...