在 JUJU 上为本地设置 DNS

在 JUJU 上为本地设置 DNS

所以我找到了 Juju,它看起来很棒!然而,对我来说最大的障碍是不知道如何设置 DNS。

我有一台运行 Ubuntu 14.04LTS 的专用服务器,安装了 JuJu,运行本地容器。但是,我无法从互联网访问它们中的任何一个。理想情况下,我想使用现有域并将它们映射到在 JuJu 上运行的服务,例如 Worpdress、MediaWiki 等。

我只有一个公共 IP 地址(IPv4 但 IPv6 有一个 /64 块),我想计划是将 charms 映射到特定端口,然后使用名称服务器来处理端口解析。

我习惯使用 Plesk、cPanel 和 VestaCP。我是否只需部署/创建 BIND/Webmin Charm 即可轻松进行 DNS 映射,还是我完全偏离了主题?

为了清楚起见,我想在我的注册商处设置自定义名称服务器到服务器 IP(ns1.example.com、ns2.example.com),并将域、子域等路由到特定端口(例如在端口 8080 上运行的 Wordpress 转到名称 example2.com)

谢谢!

答案1

您使用的是本地提供程序,它仅适用于开发和测试场景。首先,正如您所发现的,这些容器获得的地址仅限于本地。

如果你只有一个 IPv4 地址,并且想要使用它,那么你必须使用一些 iptables NAT 规则。你也许可以https://github.com/cmars/juju-nat但我个人还没用过。

使用 juju 时,您必须选择一个提供商。选择基本上是云和非云。在非云中:

  • 手动的:安装操作系统、ssh 服务器,并告诉 juju 使用该机器。它可以是一台真实机器,也可以是容器、KVM 实例等。
  • 玛雅斯:更复杂但更强大,使用 MAAS 您可以使用真实机器来部署 juju 服务并管理 DHCP 和 DNS。

您可能可以尝试手动提供程序,但顾名思义,它有点手动。但如果您正确设置了 IP 和 NAT 规则,它可能就是您所需要的。一旦您开始处理更多动态服务,它就失去了吸引力,因为您必须不断手动配置新机器供 juju 使用。

答案2

我有同样的 juju 部署问题。我已经做的是使用 Apache2 将多个 http / https 服务整合到不同的 URL 下。这是安装在我服务器上的 /etc/apache2/sites-available 上的配置片段。它允许将单个域名上的公共 URL 重新路由到任何私有地址。

在我的设置中,有一个可用的私有 DNS,因此我只需将请求路由到名为“jeedom”的机器,但我仍然不知道如何为使用 Juju 创建的机器分配私有名称。如果 Juju 单元的 IP 稳定,则可以指定 IP。我确信这个本地 DNS 问题有一个简单的答案,因为在 AWS 上,所有虚拟机都有名称(甚至是公共名称)。

<IfModule mod_ssl.c>
<IfModule mod_proxy.c>

<VirtualHost *:443>
    ServerAdmin <<email of admin here>>
    ServerName  <<public server DNS>>

    # Does not really matter
    DocumentRoot /var/www

    # SSL specific configuration (there are other ways to configure ssl)
    CustomLog ${APACHE_LOG_DIR}/ssl_request.log \
            "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    #   See default-ssl site configuration fragment for details.
    SSLEngine on
    SSLCertificateFile      /etc/ssl/certs/public.crt
    SSLCertificateKeyFile /etc/ssl/private/key.pem
    SSLCertificateChainFile /etc/apache2/ssl.crt/1_root_bundle.crt

    # Proxy to jeedom configuration
    # This configuration forwards all https://<<public domain name>>/jeedom urls 
    # to the jeedom embedded web server login screen.
    # Jeedom is a home automation system running on a RaspPi on the LAN

    ProxyRequests off
    <Location />
            ProxyPass http://jeedom/
            ProxyPassReverse http://jeedom/
    </Location>

    # Empty virtual host configuration
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>


    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    #CustomLog ${APACHE_LOG_DIR}/access.log combined

相关内容