本站致力于写一些基础型入门级的全面综合教程,希望可以给所有的初学者一个指导或帮助.坚持再坚持 注册 | 登陆
浏览模式: 标准 | 列表全部文章

1.4 发行版本


有统计,Linux的版本达300多种,但用得多,用得广的,就相对比较少了
这里,只列出部分用得广的版本.
redhat
centos
Ubuntu
opensuse
debian
gentoo
Fedora
turbo

在服务器上,redhat,centos,suse 是用得比较多的
在桌面上,Ubuntu,fedora
turbo,是我接触的第一个版本,而现在一直是用着redhat
Ubuntu,fedora是这两年发展最快最热的桌面版本了

1.3 Linux可以做什么?

Linux可以做什么?和windows哪个好?这个问题很难说得清楚.
我觉得,要看你的应用和需求.你想要的是什么?

面向变通用户的,桌面应用,比起windows来说,Linux的桌面能力是差得远,但现在发展得也不错
服务器领域,绝对不比windows差
嵌入式系统,如机顶盒,
智能手机,如google的Android,
高端的应用,如集群,分布式计算,科学计算,
等等

能做的东西,其实很多很多,但可能不那么容易.
就比如,最基础的安装个软件,在windows下,下一步下一步,就OK了
但在Linux下,可能很麻烦,也会有比较多的问题
但,你可以因此而学到很多的东西和知识.

所以说,如果只是一般的使用者,windows仍是一个不错的选择.但如果你是想学知识,或想深入了解和研究计算机和操作系统,那么,Linux绝对是一个上等的选择.


这里有一篇讨论的比较多的老贴子
http://www.chinaunix.net/jh/4/335805.html

1.2 如何学习Linux?

不知你是否知道DOS,dos是windows的最初版本,没有今天的这样漂亮美观视窗,完全就是一个一行行字符样的窗口.要做什么,要看什么都需要"命令",只要你输入对了命令,电脑才会听你的话.给你想要的东西.没有今天这样的鼠标点一点就OK了.
到了今天,Linux也有不错的视窗化的桌面平台了,而且,这两年Linux桌面版发展得越来越好,也越来越快了.
但是,本站所讲的都不和桌面有关,所以,如果你是想学桌面版的话,很遗憾.这里可能不太合适你.
因为我主要是一个web服务器系统管理员,在服务器里,是不用桌面的,那样太浪费资源,也没有一点作用.
所以,你要看本站的教程来学习linux,你必须要抛弃视窗化,回到DOS下.把windows忘掉,你才能学得下去.
本站的教程中,主要也是以web应用,服务器,系统管理主面为主.

我的几点建议:
1 抛掉视窗化,回到DOS下
2 多看多操作.多看书,多看命令,看资料,多操作命令
3 勤动手多实践,看得再多,想得再多,也不如操作,实践一遍.不要懒,一定要多动手
4 如果你的英语不太好,有空时记得补补(因为英语好的话,会让你学起来更容易).
5 多用man,多思考.如你的英语足够好,只要学会使用man,你就可以解决很多的问题了.

如能做好上述几点,我想,Linux对你来说,就没有难字可言.

1.1 什么是Linux?

windows XP,你知道是什么吧?系统,操作系统,对,Linux也是操作系统.如果不知什么是操作系统,去找书来看.
简单的说,Linux是一个操作系统的统称,也可以叫操作系统,如windows一样.同样,Linux也有很多版本,如readhat,suse,turbo等等.
和windows最主要区别在于,Linux是开放源代码的,并且是免费使用无版权问题,也就是说,所有的源代码你都可以看到,并且,可以修改(前提是你有这个能力),不像windows,你什么也看不到.所以,Linux是一个灵活性很大,定制性很强的自由操作系统.只要你有能力,想怎样都行.比如,现在的手机,也有基于Linux系统的了.
如果对于一个对计算机有很强烈的兴趣和研究兴趣的人来说,Linux绝对是一个上等的选择.因为在这里,你可以接触到最基础的东西.只要你能想到的,只要它有的,你都能看到.
对于一般的使用者,windows仍然是一个很不错的选择.而且方便

别想着有多难或是多复杂,因为Linux的第一版,也是一个在校大学生写出来的.只是经过了长时间的发展和积累,才得以今天这么完善和强大.所以,只要你有这个兴趣和恒心,你也一样可以.这是一个过程,做任何事,都需要一个过程.长的或短的.


更详细地了介绍,可以看看下面这篇文章
http://www.linuxforum.net/books/LinuxFAQ/WhatsLinux.html

一个最简单的CDN案例,南北分流,智能DNS

概述

关于CDN的介绍及讨论请看另一篇

本篇分两部分.一个squid反向代理,加速,一个是智能DNS,两个的结合才能构成一个完整的CDN服务.

本文不作过多的理论原理介绍,仅作为一个基本的安装配置过程,实施流程

 

squid

squid 为一个开源的代理软件,可以在这下载. http://www.squid-cache.org/Versions/,最新稳定版本为 3.0

wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE4-20080406.tar.gz

 

解压安装

tar –zxvf squid-3.0.STABLE4-20080406.tar.gz

cd squid-3.0.STABLE4-20080406

./configure –prefix=/home/server/squid

make all

make install

如果能顺利完成,没提示什么Error中断话就安装完了.

 

安装完要做修改配置文件为 etc/squid.conf

 

http_port 80 vhost vport

cache_peer (IP) parent 80 0 no-query originserver   #IP 为你源站服务器的IP

cache_mem 16 MB

cache_swap_low 90

cache_swap_high 95

cache_dir ufs /home/server/squid/var/cache 100 16 256

cache_effective_user

visible_hostname localhost

http_access deny all 改为 http_access allow all

 

保存

启动测试

/home/server/squid/sbin/squid -z

/home/server/squid/sbin/squid –s

 

这样,一个最简单的反向代理,或叫CDN,就完成了.

但这样只是实现了最基本的功能),不是最优和最安全的设置.在多域名或多IP源站时,还需更多的设置.

 

 

 

bind

bind 为开源的DNS服务器软件,下载 http://www.isc.org/index.pl?/sw/bind/

解压安装

tar –zxvf bind-9.4.2.tar.gz

cd bind-9.4.2

./configure –prefix=/home/server/bind

make

make install

配置

cd /home/server/bind 因为默认安装好后,是没有配置文件的,etc目录里面建立相关的文件.文件内容及模板,可以网上搜一下.或是在bind的安装文件里也有的.find 一下 name.conf 文件就可以

主要有

named.root 这个文件可以用 dig > named.root 得到内容

named.conf //

options {

        directory "/home/server/bind/etc";

        statistics-file "/var/named/data/named_stats.txt";

        /*

         * If there is a firewall between you and nameservers you want

         * to talk to, you might need to uncomment the query-source

         * directive below.  Previous versions of BIND always asked

         * questions using port 53, but BIND 8.1 uses an unprivileged

         * port by default.

         */

         // query-source address * port 53;

 

//      recursion no;

        listen-on { 127.0.0.1;IP;};

        allow-notify { IP;};

        allow-transfer {IP;};

};

 

key "rndc-key" {

        algorithm hmac-md5;

        secret "tYAivmr9FhK3W9g==";

};

 

controls {

      inet 127.0.0.1 port 953

              allow { 127.0.0.1; } keys { "rndc-key"; };

};

 

include "ip_tables.txt";//IP

 

view "view_cnc" {

key "cnc" {

algorithm hmac-md5;

secret "xHs/RBx7pdzBiCd9==";

};

allow-transfer { key cnc; };

match-clients  { key cnc;!IP; CNC;};

serverIP  { keys cnc;};

 

zone "." {

type hint;

file "named.root";

};

 

include "master/cnc.def";

};

 

view "view_any" {

key "any" {

algorithm hmac-md5;

secret "Q5vz969Ct4wFeOzw==";

};

allow-transfer { key any; };

match-clients  { key any;! IP;any;};

serverIP  { keys any;};

 

zone "." {

type hint;

file "named.root";

};

 

include "master/telecom.def";

};

 

//部分解释

rndc控制命令的key

sbin/rndc-confgen > etc/rndc.conf

KEY用这个生成 sbin/dnssec-keygen

: sbin/dnssec-keygen -a HMAC-MD5 -b 128 -n HOST cnc

用生成的KEY替换上面named.conf里的.

 

master/cnc.def

master/telcom.def

为对应的电信/网通的named.conf文件,这里也可以直接放在named.conf里的,但这样独立出来,方便管理.格式为:

zone "test.com" {

        type master;

        file "master/telecom/test.com";

           //file "master/cnc/test.com";//网通

 

};

智能DNS的关键就在这了.根据IP库判断是用cnc or telcom的记录指向到不同的服务器上

 

域名记录文件::test.com

$TTL 86400

$ORIGIN test.com.

@ IN SOA test.com. root. test.com.(

                        2006113010      ;Serial

                        28800           ; Refresh ( seconds )

                        14400           ; Retry ( seconds )

                        720000          ; Expire ( seconds )

                        86400           );Minimum TTL for Zone ( seconds )

 

        IN      NS      ns1. test.com.

        IN      NS      ns2. test.com.

@       IN      A       ip

www     IN      A      IP

NS1      IN         A          IP

NS2      IN         A          IP

;

;end

 

ip_tables.txt 内容格式

acl "CNC" {

58.16.0.0/16;

58.17.0.0/17;

58.17.128.0/17;

};

 

至此,DNS的配置就基本完成了.

 

启动测试

/home/servers/bind/sbin/named -c /home/servers/bind/etc/named.conf -u named

可以查看/var/log/messages 学会查看这个文件,能帮助你解决很多的问题

 

nslookup

server IP

test.com/www.test.com

如果能查询到记录,也就正常了.

 

DNS

在配置上基本上和主DNS一样.

需要修改如下两处:

named.conf/telecom.def/cnc.def文件里,改为:

zone "test.com" {

        type slave;

        masters{DNS IP;};

        file "master/telecom/test.com";

};

 

还有named.conf里的相应的IP改一下就可以了.

 

智能DNS部分也完成了

 

完成上面两部分,一个基本的CDN系统就出来了.

 

名词解释

 

#转载请保留此连接

#VRlinux技术站 http://www.vrlinux.com

#QQ:5846690

CDN技术及应用

 

概述

众所周知,中国的互联网主要是分两大派的.南电信,北网通,而且,彼此间的互通,是很艰难的.时常会有电信的人访问网通的网站,N久都打不开,同样,网通访问电信的也一样.这是因为在电信网通的接口处,两家运营商都彼此作了很大的限制.但网络是无区域的,全国甚至是全世界都有可能会访问.但这么慢的速度,很多人就不会第二次再访问你网站了.那你就失去了很多的访客和用户,特别是现在的电子商务时代,少了这么多的用户,也就预示着可能会失去很多的业务和客户.这是不允许的.那如何解决这个问题呢?

最早的时候,应该对电信或网通,用不用的域名访问.:

www.test.com   电信访问

www1.test.com 网通访问

在首页里做一个连接,让访客自己选择是访问电信或网通.

这样做有很多缺点.如网站内容管理麻烦,对访客来说,也不易记住.还有不利于网站的发展等等(现在也还是有一些网站用这种方式的).

后有了反向代理,也叫web加速,也叫缓存服务器.但这也只是省了内容管理的麻烦,但访问上还是有缺陷.

直到有了智能DNS,才算有比较完美的解决方案.有了智能DNS,就不用多个域名分开了,直接就用一个主域名, www.test.com ,但在访客访问,经过DNS解释时,已经根据你的IP,解释到相应的电信/网通服务器里.而对访客来说是没有区别,感觉不到的.

用智能DNS和反向代理的结合,能够很好的解决这个南北互通的问题.

今天的CDN,也是在这个技术原理的基础上,发展起来的.但已经是比较成熟和完善的了.可以不只是分电信/网通,还可以是铁通,还可以分地区,华南,华北,华中等.可以有很多节点.也可以按访客的IPDNS来定向到最近的服务节点上.现在,很多大站都用上了这种技术,用专业的CDN或是自己架设CDN.

 

CDN介绍及原理

详细的CDN技术及原理,在这就不作介绍,GG一搜一大堆.

 

简单来说,它可以实现将你的网站复制N多份,并且放置在全国各地的服务器上,再通过域名解释策略将访客带到最近速度最快的服务器节点上,从而将速度提高到最快,延时最小.且不受上网带宽的限制,如网通,铁通等.这样全国访问都快了.对访客来说,也感觉不到有什么区别和不同,就是变快了.一句话,就是全国访问都快了.要详细了解的,GG一下,因为内容太多,这里只是用比较容易理解的话简单描述.

这样说起来很简单,但真正实施起来,还是有很多细节上的问题需处理的.

 

CDN的应用

CDN的应用很广基本上互联网上的应用都可以用到.就如那些几大门户,都是用买的或是自建的CDN.在静态,下载,媒体方面的应用效果更佳.

 

CDN服务提供商

CDN的出现及发展,也有几年了.目前国内也有好几家规模比较大一点的CDN提供商.如蓝讯,帝联,网缩等.笔者有幸接触过几家,有大有小,价格有高有低,感觉都不是太理想(在这说明下,CDN对于静态方面的应用,效果是很好的,但对于一些对实时数据要求比较高的话,就不那么理想了).在此也不对任一家作评论.

 

CDN的优缺点

优点有:速度快,安全,可扩展性好,稳定(要看技术实力),缺点就是比较贵

那能不能自己来构建一个CDN?答案是肯定可以,但要实际问题实际分析,看需求来选择.

 

CDN好和自建CDN?

CDN,只要出钱就可以了,其它的任何问题,都不需要自己担心和处理.就是出的money比较多.但是不方便控制,也会受服务商的网络,带宽,业务等影响.

自建CDN,是自己出钱又出力.要出钱买机器,买带宽,还要出钱找技术.还有后期的维护和管理等.但方便控制和管理,只要网络和机器正常,就不会有问题.

有一个CDN联盟,是免费的,不过要求你的机器也加入到他们的CDN服务器群里

所以要实际问题,实际分析,不同的企业也应根据自己的需求分析来作选择

如果你是个互联网企业或公司,就可以考虑自建CDN,如果其它,就觉得买更好点.

 

自己如何建CDN?

买好机器和带宽,接上网线就可以配置了,那不是废话,哈哈

做之前要想好,有哪些可以做CDN的软件呢?在这里,强烈推荐一个开源软件squid,配合Linux来做CDN,是一个很不错的选择.再加上bind9view功能,收集好IP就可以了

squid 是什么?这里不作详细介绍.简单说,他是一个代理加速软件,可以做普通的代理上网的服务器,也可以做反向代理,也就是CDN.要详细了解,GG搜一下.(在这里说个题外话,基本上那些CDN服务商都在吹自己是买了什么什么高端设备等等,实际上,基本上都是用的这个squid,唯一的区别,就是有个研发团队,squid做调整及优化),

 

案例及流程

这里给出一个最简单的CDN案例.南北分流,也可以叫智能DNS.

假如你的主站是在电信机房的.那么,你只需要在网通的机房也放一台机.通过bind9view功能(常说的智能DNS),将访问分别定向到各自的线路服务器上.这里有个问题需要说明下,可能也会有人问了.这样网通连电信的速度怎样?比起你在家里访问的速度就比较快了.因为虽说电信/网通相互限制着,但在主干节点上,速度也还是可以的.不过也要看机房的地理位置,有些会快点,有些会慢点.同时也要看应用.如果是静态上的应用,是没问题的.对于动态上的应用,或实时要求高的,在不稳定时会有一定的影响.这样的话,只能寻找一个速度好,也稳定的机房,就相对比较好了

 

第一步 下载squid,安装,配置好即可,要测试好能工作.(安装配置过程在此略过)

第二步 配置一个DNS服务器.下载bind9,安装配置好,测试正常, .(安装配置过程在此略过)

设置好域名相关记录,就可以到你的域名注册商里改解释的DNS改为自己的即可,就等生效了.

 

 

名词解释

CDN的全称是Content Delivery Network,即内容分发网络。

Squid 一个开源的代理软件,可做普通代理上网,亦或反向代理/web加速

反向代理 可以说是一个缓存服务器,将你的网站缓存过来,你访问这个缓存服务器和访问你的服务器是一样的.

智能DNS 就是能根据访客的IP来解释到不同的服务器上.比如电信/网通

bind 一个开源的DNS服务器软件

 

#转载请保留此连接