首页 > 解决方案 > 如何使用 Apache 为 Wildly 项目实现代理?

问题描述

我已经使用 JSF 实现了一个 JavaEE 项目并部署到我的本地 Wildly 服务器中。现在我完全没问题,我可以通过输入http://localhost:8080/gestionale/使用任何浏览器访问它。现在我想将项目移动到 Linux 机器上的云中。这个想法是使用 Let's Encrypt 使用 SSL/TLS 设置 Apache 以加密所有数据,但我不知道如何在 Apache 服务器配置中实现这一点。这可以工作吗?

    <IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName mydomain.com
    ServerAlias www.mydomain.com 
ProxyPass                   /       http://127.0.0.1:8080/gestionale/ 
ProxyPassReverse            /       http://127.0.0.1:8080/gestionale/  

    Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile fullchain.pem
SSLCertificateKeyFile privkey.pem
<IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
    </IfModule>

</VirtualHost>
</IfModule>

想法是直接使用 mydomain.com 访问 JSF 项目:这可能吗?交换的所有数据是否都受到 TLS/SSL 的保护?

标签: apachewildflyreverse-proxyhttp-proxy

解决方案


从未加密开始,让您的生活更轻松。基本配置是:

<VirtualHost *:80>
    ServerName www.mydomain.tld

    ProxyPreserveHost on
    ProxyPass / http://127.0.0.1:8080/gestionale/
    ProxyTimeout 360
</VirtualHost>

然后,安装Certbot并运行说明告诉您的内容。例如,在 Ubuntu 上你会运行:

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get install certbot python-certbot-apache 
sudo certbot --apache

Certbot 将为您更新您的 Apache SSL 配置。它还会询问您是否要设置从 HTTP 到 HTTPS 的重定向(通常是个好主意)。

确保您的域名在 DNS 中正确解析,否则您将无法正确运行 certbot。这就是 HTTP 的优势,它只在最初验证所有设置是否正确。


推荐阅读