【发布时间】:2021-05-06 14:38:29
【问题描述】:
Debian 10 / Apache2 -
目标:将所有网络流量重定向到 VPS 服务器到 SSL。我托管了 2 个站点:bjmurrey.com 和 nextcloud.bjmurrey.com。我有 1 个 IP 地址。
问题:我终其一生都无法找到完成这项工作的方法。我已经尝试了在这里和其他地方发布的 1000 条建议,但没有成功。我得到的最接近的是在输入 nextcloud.bjmurrey.com 时所有内容都重定向到https://bjmurrey.com。我也是这方面的新手,所以请善待。
我有一个如下所示的 default.conf:
<VirtualHost *:80>
ServerName www.bjmurrey.com
ServerAlias bjmurrey.com
DocumentRoot /var/www/blog
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Redirect permanent / https://bjmurrey.com/
</VirtualHost>
<VirtualHost *:80>
ServerName nextcloud.bjmurrey.com
DocumentRoot /var/www/nextcloud
ServerAlias nextcloud.bjmurrey.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Redirect permanent / https://nextcloud.bjmurrey.com/
</VirtualHost>
我有一个如下所示的 default-ssl.conf:
<VirtualHost bjmurrey.com:443>
ServerName bjmurrey.com
ServerAlias www.bjmurrey.com
DocumentRoot /var/www/blog
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/bjmurrey.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/bjmurrey.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
<VirtualHost nextcloud.bjmurrey.com:443>
ServerName nextcloud.bjmurrey.com
DocumentRoot /var/www/nextcloud
ServerAlias nextcloud.bjmurrey.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/nextcloud.bjmurrey.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/nextcloud.bjmurrey.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
bjmurrey.com 位于 var/www/blog 和 nextcloud.bjmurrey.com 位于 var/www/nextcloud 目录中。
我的 DNS 记录 www 和 nextcloud 都指向同一个 IP。我只有 1 个可用 IP。这是一个非常低流量的网站。 我已经做了各种各样的事情,比如只将默认虚拟主机重定向到 nextcloud 并删除了所有提到 www 站点的内容,它仍然重定向到 bjmurrey.com,或者重定向到 SSL 错误,指出无法加载 nextcloud,因为ssl 仅适用于 bjmurrey.com。如您所见,我已经为 bjmurrey.com 和 nextcloud.bjmurrey.com 使用letsencrypt 制作了证书。
我正沮丧地拔掉我所有的头发,所以我知道我已经在这里挖掘了我所有的知识。救命!
【问题讨论】:
-
我假设服务器内部的两个主机都解析到相同的地址)。使用 *:443 和反转顺序(首先放置 ServerName nextcloud.xxxx.xxx。对于端口 80 中的重定向,我必须考虑更多..
-
我确实尝试过反转它们 - 结果相同。 :( 不过感谢您的提示!:) 也许这与 SSL 证书有关,因为这两个站点都在同一个域中(bjmurrey.com 和 nextcloud.bjmurrey.com)?
-
添加了答案。请仔细检查您使用的是 *:80 和 *:443。
标签: ssl debian apache2 virtualhost nextcloud