Nes*_*h A 4 mysql domain-name-system bind
我将要创建一个需要 DNS 服务器的新网站。它可能有超过 10,000 个区域,并且随着我们变大会获得更多区域文件。问题是,您认为哪个dns服务器软件更有效:mydns哪个使用mysql存储数据或bind哪个使用平面文件?这些 DNS 服务器如何处理负载平衡,以便我们可以平衡多个服务器之间的负载,以免任何服务器过载?
对我来说,BIND 更好。配置简单,除非升级软件,否则无需重启BIND。您应该查看 BIND 的是 rndc 命令。Rndc 允许您重新加载单个区域,同时保持 BIND 运行。如果您编辑了区域文件,rndc 将立即发布更改。
BIND 绝对有可能运行数据库。您需要在 ./configure 步骤中指定一些步骤。
我有一些很好的说明,但它们是俄语的。我会试着写一个小行动计划。
跳转到下载文件所在的文件夹进行解压:
cd ~/downloads/tar -xzf mysql-bind.tar.gz
跳转到端口下载源码bind9(你的mysql-bind版本是为这个服务设计的)。虽然不编译!
cd /usr/ports/dns/bind9 make fetch 提取
将下载的文件 mysql-bind 复制到绑定的源:
cp ~/downloads/mysqldb.c /usr/ports/dns/bind9/work/bind-xxx/bin/named/ cp ~/downloads/mysqldb.h /usr/ports/dns/bind9/work/bind-xxx/箱/命名/包括/命名/
跳转到源文件夹 (work/bind-xxx) 并进行以下更改:a) 文件 bin/named/Makefile.in 读取:
DBDRIVER_OBJS = mysqldb.@O@ DBDRIVER_SRCS = mysqldb.c
运行命令mysql_config -cflags和输出写入到一个变量DBDRIVER_INCLUDES(例如:DBDRIVER_INCLUDES = -I/usr/local/include/mysql -fno-strict-aliasing -pipe)
运行命令mysql_config -libs和输出写入到一个变量DBDRIVER_LIBS
(例如:DBDRIVER_LIBS = -L/usr/local/lib/mysql-lmysqlclient-lz-lcrypt-lm)
b) 在文件中bin/named/main.c:
<named/mysqldb.h> setup(),mysqldb_init()在该行之前添加一个调用ns_server_create()。cleanup(),添加 mysqldb_clear(); 之后ns_server_destroy()。安装绑定:
cd /usr/ports/dns/bind make make install
为每个区域创建其表 mysql:
CREATE TABLE table_name ( name varchar(255) default NULL, ttl int(11) default NULL, rdtype varchar(255) default NULL, rdata varchar(255) default NULL TYPE=MyISAM;
为区域创建必要的记录:
INSERT INTO table_name VALUES ('mydomain.com', 259200, 'SOA', 'mydomain.com.webmaster.mydomain.com. 2008092901 28800 7200 86400 28800'); INSERT INTO table_name VALUES ('mydomain.com', 259200, 'NS', 'ns0.mydomain.com.'); INSERT INTO table_name VALUES ('mydomain.com', 259200, 'NS', 'ns1.mydomain.com.'); INSERT INTO table_name VALUES ('mydomain.com', 259200, 'MX', '10 mail.mydomain.com.'); INSERT INTO table_name VALUES ('w0.mydomain.com', 259200, 'A', '192.168.1.1'); INSERT INTO table_name VALUES ('w1.mydomain.com', 259200, 'A', '192.168.1.2');
在 named.conf 文件中指定正确的区域:
区域“smol.website.ru”{ type master; 通知没有;database "mysqldb database_name table_name mysql_ip_address 登录密码"; };
| 归档时间: |
|
| 查看次数: |
6393 次 |
| 最近记录: |