设置 Apache 反向代理以在 Apache 配置文件上使用多个域访问内部应用程序,并使用 lets encrypt 启用 SSL

设置 Apache 反向代理以在 Apache 配置文件上使用多个域访问内部应用程序,并使用 lets encrypt 启用 SSL

网上的许多 ubuntu 服务器教程只向您展示了如何设置反向代理,但没有解释如何使用 SSL 加密进行设置以及如何与服务器上的其他域一起设置它。有没有关于如何设置以下内容的简明教程:

  • apache 反向代理访问内部应用程序
  • 设置 SSL 以便为该应用加密,以便通过 https 进行访问

答案1

假设您的 ubuntu 服务器上安装了 apache,您需要使用 root 安装代理模块:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests

安装完成后,您需要修改 /etc/apache2/sites-available/000-default.conf 文件以添加新站点。使用以下示例:

<VirtualHost *:80>
    ServerName xxxx.yyyy.com

    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:26876/
    ProxyPassReverse / http://127.0.0.1:26876/

        <Directory /var/www>
        AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

      RewriteEngine on
      RewriteCond %{SERVER_NAME} =testardor.xcubicle.com
      RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

设置完成后,您需要使用以下命令重新启动 apache:systemctl 重新启动 apache2

现在使用 lets encrypt 设置 SSL。起初设置 SSL 似乎很混乱,但其实很简单。按照本教程操作:https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-18-04

它非常简单:

sudo add-apt-repository ppa:certbot/certbot

sudo apt install python-certbot-apache

sudo certbot --apache

按照提示和你的设置操作。记得重启你的 apache。

注意:如果您已经设置了 lets encrypt 并添加了新域,则只需删除 000-default-le-ssl.conf 文件并让 certbot 重新生成它即可。我遇到了问题,需要这样做。

相关内容