Apache:子域、虚拟主机和动态 DNS

标签 apache ssl dynamic dns virtualhost

我目前的设置是这样的。我有一个注册域名。通过我的域提供商,我已将我的域指向一个动态 IP 地址。所以mysite.com指向97.89.120.x

我有 dd-wrt ​​路由器,它保持我的动态 IP 更新,并将所有端口 80 和 443 请求转发到我的 apache 服务器 IP 192.168.121.50(这里没有什么特别疯狂的)

我的 apache 服务器将所有端口 80 请求重定向到端口 443 cat/etc/apache2/sites-available/default

<VirtualHost *:80>
    RewriteEngine on
    ReWriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>

cat/etc/apache2/sites-available/default-ssl

<VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/mycloud
</VirtualHost>

这一切都非常成功,而且非常简单。

我想添加 cloud.mysite.com 的子域。这样 mysite.com 和 cloud.mysite.com 都指向同一个动态 IP 97.89.120.x 从我的 dd-wrt ​​路由器我将端口转发所有端口 80 和 443 请求到我环境中的新服务器 192.168.121.60

我希望这个新主机上的 apache 服务器托管 mysite.com 并将对 cloud.mysite.com 的请求转发到另一台服务器 192.168.121.50 并重定向到 https/ssl/端口 443。

那么我究竟应该如何设置虚拟服务器来执行此操作?我试过类似的方法但没有成功。

NameVirtualHost *
    <VirtualHost *:80>
    ServerName www.mysite.com
    DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
    ServerName www.cloud.mysite.com
    ServerAlias 192.168.121.50
    DocumentRoot /var/www/mycloud
</VirtualHost>

如何将子域重定向到不同的服务器并使其正常工作?

最佳答案

你对虚拟主机的理解有误。 vhosts 的目的是在单个网络服务器上托管多个站点。使用您的方法并非不可能做到这一点,但如果您有多个网络服务器和服务要发布到一个域中的 www,您将以另一种方式组织。

您可以通过 DNS、网关、反向代理、路由和其他方法来做到这一点。

我建议找到一种方法,让 ddwrt 路由器组织请求并将它们交给所需的网络服务器。

在 ddwrt 上,就像反向代理和负载均衡器的示例一样,您可以使用 Pound 执行此操作:http://www.dd-wrt.com/wiki/index.php/Pound

如果您还有其他问题,请告诉我。然后我会编辑我的帖子。但从这一点来看,这是一个针对 serverfault 而不是 stackoverflow 的问题。

关于Apache:子域、虚拟主机和动态 DNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27662811/

相关文章:

.htaccess - 2-redirect HSTS 而不是 1-redirect HSTS 的优势是什么

Apache HttpClient 在直接时能够通过 HTTPS 进行通信,但不能通过代理进行通信 错误 : javax.net.ssl.SSLPeerUnverifiedException:对等方未经过身份验证

php - 为 apache 日志静音 PHP mysql_* deprecated 错误

Apache hybris 配置代理将 HTTP 和 HTTP(S) yacceleratorstorefront(电子商店)URL 传递给 Hybris 服务器

Apache 2.4.7 mod-mono 不会安装 ubuntu 14.04

ruby - Ruby 的开放动态类结构(duck typing)安全吗?

c++ - 如何检测之前连接的 SSL/TCP 套接字上的互联网断开连接?

带有 cURL 的 PHP 脚本在一台服务器上工作......在其他服务器上不起作用

python - 如何决定在不使用 'if' 语句的情况下创建子类

c - 我无法写入文件