bind9的初步使用(1)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bind9的初步使用(1)相关的知识,希望对你有一定的参考价值。
参考技术A 周五把自己的电脑重装了一下,还是使用的经典的windows+vmware+ubuntu的经典方式(对我来说)。但是我不想每次都修改host文件来实现我的域名访问,所以我在想有没有一个更好的方式,可以让我实现域名映射。这个时候我想到了自己架设一个dns服务器。说干就干,我就准备用dns的开源系统 bind9 来搞一番。其实安装非常简单,一条命令就搞定了
启动:
停止:
重启:
状态:
举个例子,比如现在我们有个域名是:baoguoxiao.pro。现在我们要对这个域名进行虚拟映射。
首先打开 /etc/bind/named.conf.local ,追加如下内容到文件尾部:
那么现在这个文件的内容完整如下:
我们定义的地址是 /etc/bind/zones/baoguoxiao.pro.db 。但是我们的 /etc/bind/ 并没有该目录。所以需要如下命令进行创建:
进入该目录:
然后创建该文件 baoguoxiao.pro.db ,并追加如下命令:
这样就设置完成了。然后我们将bind9进行重启。
好了,这样就表示已经配置成功了
之前的设置我们需要指定本机的DNS服务器才可以使用,如果我们不指定的话,那么查询该域名是没有效果的:
在ubuntu17.10之后,网卡配置已经更新为netplan。该配置文件的目录是 /etc/netplan/ 。不过里面的文件不一定是相同的名字。我的文件打开是这样的。
注意,我在倒数第二行的数组里面添加本机的服务器 192.168.1.231 。关于该文件的配置,可以查看我的另外一篇文章: UBUNTU17.10设置固态IP 。
这样我们在本机就可以不指定dns服务器的基础上进行获取域名的ip了。
本篇文章就说到这里。下一篇讲如何配置可局域网访问。
applycallcalleecaller初步了解
在javascript中这四货通常一起出现介绍,楼主记忆力实在是太差经常忘记用法,故记此文。
apply和call
apply和call是函数原型的一个方法,调用者的类型必须是函数。官方解释:应用某一对象的一个方法,用另一个对象替换当前对象。通常用于改变上下文的this,这点和bind相似。apply和call的区别:方法传递的参数不同。apply传递的是一个数组,如果木有第二个参数两者用法结果相同。
使用方法:fun.call(thisArg[, arg1[, arg2[, …]]]) fun.apply(thisArg, [arg1,arg2,…argN])
fun.call(this, arg1,arg2,arg3) == fun.apply(this, arguments) == this.fun(arg1, arg2, arg3)
function fn() { console.log(this.count); } var count = 10; var obj = {count: 20}; fn(); // 10 fn.call(); // 10 fn.call(window); // 10 fn.call(null); // 10 fn.call(obj); // 20 fn.apply(window); // 10 fn.apply(null); // 10 fn.apply(obj); // 20
如果没有指定this或者为null,则默认指向window。
使用apply的好处是可以直接将当前函数的arguments对象当做第二个参数传入,在对象继承等地方发挥着巨大的作用。
// 计算数组最大值 var a = [1, 2, 3, 6, 5, 4, 10, 9, 8, 7]; var maxn = Math.max.apply(null, a); console.log(maxn); // 10
callee
callee返回正被执行的Function对象,也就是所指定的Function对象的正文。arguments.length是实参长度,arguments.callee.length是形参长度。
function fn(a, b, c, d) { console.log(arguments.length); // 3 console.log(arguments.callee.length); // 4 console.log(fn.length); // 4 console.log(arguments.callee === fn); // true console.log(a.callee); // undefined } fn(1, 2, 3);
也许是因为楼主见识少,callee的用法楼主只看到过arguments.callee的形式(或许还有更多,所以此文标题为初步了解,望路过的大大指导...),或许你会产生疑问,以上代码的arguments.callee不是完全可以用fn代替么?其实如果是个匿名函数,arguments.callee就有用武之地了:
// 打印100以内的斐波那契数列 (function(a, b) { var c = a + b; if(c > 100) return; console.log(c); arguments.callee(b, c); })(-1, 1);
caller
caller返回一个对函数的引用(返回值是个函数),该函数调用了当前函数(调用caller的函数 即下面代码中的arguments.callee)。对于函数来说,caller属性只有在函数执行时才有定义。如果函数是由 Javascript 程序的顶层调用的,那么caller返回的就是null。
function test() { console.log(arguments.callee); console.log(arguments.callee.caller); } function test2() { test(); } test(); test2(); // test() {..} // null // test() {..} // test2() {..}
代码如上,解释似乎也可以顺理成章。首先执行test函数,arguments.callee返回函数本身(test),而该函数是顶层调用,返回null;第二次调用test2函数,arguments.callee值不变还是test,而test函数此次是在test2中调用的,所以返回test2函数。
函数.caller,返回函数。
以上是关于bind9的初步使用(1)的主要内容,如果未能解决你的问题,请参考以下文章
Spring框架学习笔记 --- [在spring中初步上手使用注解开发;以及JDBC的初步使用]
Spring框架学习笔记 ---[spring框架概念 , 初步上手使用Spring , 控制反转 & 依赖注入初步理解 ]