使用 apache 作为 Glassfish 的前端
Use apache as frontend to Glassfish
有没有可能做我想做的事?
我有一个域 - example.com - 安装在网络服务器 Ubuntu 16.04/Apache 上。
在 Apache 后面,我 运行 标准端口 8080 上的标准 Glassfish(实际上是 Payara)。
在 Payara 上,我有一个 webapp - myWebapp - 部署在根上下文 /
当我将我的兄弟直接指向端口 8080 时,它显示了我预期的网络应用程序:
http://example.com:8080/ => webapp shown.
1) 首先我想把我的 Payara 隐藏在 apache 后面并确保人们写的时候
http://example.com/ the are redirected to
https://example.com => myWebapp is shown.
这部分使用 AJP 工作,我的证书都已到位。
在我的default.conf在
<VirtualHost *:80>
已插入以下行:
Redirect permanent / https://example.com
它负责重定向到 HTTPS。但我怀疑这是否是正确的方法。
conf 文件中的所有其他内容都是标准的。
在我的 ssl.conf 文件中
<virtualHost *.443>
我已插入
ServerName example.com
和 SSL 证书的路径。它按预期工作。
我还添加了更多内容
ProxyPass / ajp://127.0.0.1:8009
ProxyPassReverse / ajp://127.0.0.1:8009
同样,这很有效。如果我写
http://example.com
我被重定向到
https://example.com/ => myWebapp is shown.
这太完美了。
但是如果我写
http://example.com/phpmyadmin
例如,我没有看到 phpmyadmin 页面。
我怎样才能做到这一点,这有可能吗?
感谢您的帮助。
金
您在以下配置中存在冲突:
ProxyPass / ajp://127.0.0.1:8009
ProxyPassReverse / ajp://127.0.0.1:8009
这会将所有 http 请求以及 http://example.com/phpmyadmin 发送到您的 Payara 服务器
你需要的是
ProxyPass /myWebapp ajp://127.0.0.1:8009
ProxyPassReverse /myWebapp ajp://127.0.0.1:8009
这样只有以 /myWebapp 开头的相对 URL 才会重定向到您的 Payara 服务器,而 /phpmyadmin 仍由 Apache 托管。
Only specific URIs can be proxied, as shown in this example:
ProxyPass "/images" "http://www.example.com/"
ProxyPassReverse "/images" "http://www.example.com/"
In the above, any requests which start with the /images path with be proxied to the specified backend, otherwise it will be handled locally.
有没有可能做我想做的事?
我有一个域 - example.com - 安装在网络服务器 Ubuntu 16.04/Apache 上。
在 Apache 后面,我 运行 标准端口 8080 上的标准 Glassfish(实际上是 Payara)。
在 Payara 上,我有一个 webapp - myWebapp - 部署在根上下文 /
当我将我的兄弟直接指向端口 8080 时,它显示了我预期的网络应用程序:
http://example.com:8080/ => webapp shown.
1) 首先我想把我的 Payara 隐藏在 apache 后面并确保人们写的时候
http://example.com/ the are redirected to
https://example.com => myWebapp is shown.
这部分使用 AJP 工作,我的证书都已到位。
在我的default.conf在
<VirtualHost *:80>
已插入以下行:
Redirect permanent / https://example.com
它负责重定向到 HTTPS。但我怀疑这是否是正确的方法。
conf 文件中的所有其他内容都是标准的。
在我的 ssl.conf 文件中
<virtualHost *.443>
我已插入
ServerName example.com
和 SSL 证书的路径。它按预期工作。
我还添加了更多内容
ProxyPass / ajp://127.0.0.1:8009
ProxyPassReverse / ajp://127.0.0.1:8009
同样,这很有效。如果我写
http://example.com
我被重定向到
https://example.com/ => myWebapp is shown.
这太完美了。
但是如果我写
http://example.com/phpmyadmin
例如,我没有看到 phpmyadmin 页面。
我怎样才能做到这一点,这有可能吗?
感谢您的帮助。
金
您在以下配置中存在冲突:
ProxyPass / ajp://127.0.0.1:8009
ProxyPassReverse / ajp://127.0.0.1:8009
这会将所有 http 请求以及 http://example.com/phpmyadmin 发送到您的 Payara 服务器
你需要的是
ProxyPass /myWebapp ajp://127.0.0.1:8009
ProxyPassReverse /myWebapp ajp://127.0.0.1:8009
这样只有以 /myWebapp 开头的相对 URL 才会重定向到您的 Payara 服务器,而 /phpmyadmin 仍由 Apache 托管。
Only specific URIs can be proxied, as shown in this example:
ProxyPass "/images" "http://www.example.com/"
ProxyPassReverse "/images" "http://www.example.com/"
In the above, any requests which start with the /images path with be proxied to the specified backend, otherwise it will be handled locally.