![设置 Apache 反向代理以在 Apache 配置文件上使用多个域访问内部应用程序,并使用 lets encrypt 启用 SSL](https://linux22.com/image/1596166/%E8%AE%BE%E7%BD%AE%20Apache%20%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E4%BB%A5%E5%9C%A8%20Apache%20%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BD%BF%E7%94%A8%E5%A4%9A%E4%B8%AA%E5%9F%9F%E8%AE%BF%E9%97%AE%E5%86%85%E9%83%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%8C%E5%B9%B6%E4%BD%BF%E7%94%A8%20lets%20encrypt%20%E5%90%AF%E7%94%A8%20SSL.png)
网上的许多 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 重新生成它即可。我遇到了问题,需要这样做。