网上的许多 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 重新生成它即可。我遇到了问题,需要这样做。