Linux 服务介绍
[ 2009/04/04 03:15 | by selboo ]
服务列表(按字母顺序排列)
服务名 必需(是/否) 用途描述 注解
acon 否 语言支持 特别支持左手书写语言:阿拉伯语,波斯语和希伯莱语
acpi 否 电源管理 手提电脑电池电扇监控器
acpid 否 监听精灵进程 此进程监听并分配内核中的acpi事件
adsl 否 内部ADSL开关控制 只有你的计算机内部有互联网连接adsl开关时才用到此服务
alsa 否 高级Linux声音构件 这个单独的声音系统实际包含在内核中
anacron 否 周期命令调度程序 一个任务调度工具
apmd 否 电源管理 手提电脑电源管理
apmiser 否 电源管理 另一手提电脑电池延长器
arpwatch 否 以太网IP地址配对监控器 用主机名监控并记录远程IP地址
atd 否 周期命令调度程序 一个任务调度工具
autofs 否 自动安装服务 几个命令服务文件系统自动安装之一.一些此类服务专门针对发行配套软件,如果你使用的发行配套软件拥有自己的自动安装系统,不要用这一个.
bluetooth 否 蓝牙技术核心 用于所有蓝牙服务
bootparamd 否 导入服务 以前导入无盘客户端/瘦客户端的方法.最新型的方法为零配置系统(zeroconf system).
canna 否 日语转换引擎
capi4linux 否 基本CAPI子系统
cpqarrayd 否 硬件服务 康柏独立冗余磁盘阵列(Raid Array)监控器
cpufreq 否 硬件服务 控查并配置CPU频率精灵程序模块
cpufreqd 否 硬件服务 此服务自动衡量CPU频率来减少过热情况.在超频时有用.
crond 是 周期命令调度程序 一个任务调度工具
Cups-lpd 否 使旧式Lunux或商业Unix系统连接到打印主机上. 只有在允许旧式系统访问打印机时才有用
cups 是 公共Unix打印系统 进行打印的必要功能
cvs 否 并发版本系统 用于管理多用户文档
devfsd 否 系统维护 此服务只清除动态桌面目录,除非你的系统经常崩溃,否则不需要此服务.
dhcpd 否 DHCP服务器 你的网络足够大,使用静态IP很麻烦吗?此项服务对你的网络进行DHCP IP配置,方便网络应用.
diald 否 拨号网络智能自动拨号器 此服务一经请求,即连接上网络.你一旦输入电子邮件,点击发送,它就自动连接,发送电邮并断开.
dkms 否 DKMS自安装导入 发行配套软件专用工具,用于OEM类型安装.它允许管理员密码的最初导入设置以及常规应用的用户名密码,系统的最后配置.
dm 是 显示管理器 X服务器的核心,使用图形用户界面(GUI)时必需.
dnbc 否 数字网络绑定Chrooter 这是一个简单的bash脚本,它将一个BIND服务器放入一个chroot牢笼中.安装BIND,发布脚本并重启.
Drakxtools-http 否 小型服务管理服务器 远程系统管理的发行配套软件专用工具.
dund 否 蓝牙拨号网络
fam 否 文件系统变更监控器 文件系统所有改变的记录器
finger 否 数据远程访问 此服务允许你远程访问用户登录日期,最后登录日期与时间.用于不在办公室时监控雇员的工作习惯,主要的安全违反,因为你正有效地在线发布公司机密数据.
freshclam 是 ClamAV更新器 用于自动更新ClamAV
gpm 是 鼠标 鼠标驱动器控制台模式
haldaemon 否 硬件监控系统 此服务监控硬件改变,为你改变新的或更改过的硬件.
harddrake 否 硬件服务 发行配套软件专用硬件探测与配置
heartbeat 否 高可用性服务 此服务旨在增加重要服务与服务器的优先级
hidd 否 蓝牙H.I.D.服务器
hplip 否 惠普Linux打印与成像 旧版惠普整成产品供应驱动器
hpoj 否 Pital?init,惠普办公喷墨打印机驱动器 惠普办公喷墨打印机旧式驱动器.新式驱动器包含在打印机的打印驱动器内.
httpd 否 Apache网络服务器 在系统上应用此服务有两个原因,一是要用它作为网络服务器,二是用它作为网址开发器.如果没有此二项,则不必安装Apache.
hylafax?server 否 企业传真机?调制调解器服务 此服务仅用于1类与2类传真机.如果你想用hylafax通过调制调解器发送传真,必须运行此服务.它并不是唯一有效的传真工具.
ibod 否 按需ISDN MPPP带宽 与拨号网络一同使用,按需连接到网络.
identd 否 TCP连接鉴定
imaps 否 安全IMAP服务器
imaps 否 IMAP服务器
iplog 否 用主机名或远程主机记录TCP,UDP,ICMP. 有用的网络监控工具
ipop2 否 POP2邮件服务器
ipop3 否 POP3邮件服务器
ipsec 否 加密与验证通信 KLIPS为内核一半,PLUTO为用户空间一半.在远程访问情况下十分有用.
iptables 是 基于Packet过滤防火墙内核 所有优秀的Linux防火墙都基于此项服务
ipvsadmin 否 Linux核心IP虚拟服务器 最早的Linux网络系统之一,已不常用.
irda 否 红外线设备界面 以前的无线设备支持
keytable 是 键盘映射 此服务明确告诉系统你正在使用哪种键盘
kheader 否 导入服务 此服务自动重建内核头导入
lads 否 登录异常探测系统 跟踪登录企图并警告入侵企图的工具
laptop mode 否 电源管理 减少电力耗费,延长手提电脑电池寿命的工具
leafnode 否 X? INETD NNTP服务
lisa 否 局域网信息服务器
lmsensors 否 硬件健康监控器 此服务要求系统主板支持并有合适的监控系统,如CPU温度与电压监控器.
mailman 否 GUN邮件列表管理器 常用的邮件列表工具,带Python编写的管理网络界面.它允许列表成员发送邮件并回复邮件到同一个地址进行交流.它还可用于向那些发送请求的用户传送新闻时讯/产品更新.
mandi 否 交互式防火墙 允许暂时无线访问系统的专用服务,将为当前任务开放iptables防火墙,仅用于无线设备访问.在用户许可情况下才可使用,不能自动使用.
mdadm 否 软阵列监控服务 这也是一个用于上述软件阵列栏的管理工具
mdnsresponder 否 零配置DNS配置工具
messagebus 是 事件监控服务 此服务在必要时向所有用户发送广播信息,如服务器将要重启.
mon 是 系统监控精灵进程 许多系统服务要求此服务来运行
mysqld 否 MySQL服务器 如果你不需要这个数据库,不要打开它.
named 否 绑定(BIND)服务器 这就是声名狼藉的名称服务器
netplugd 否 网卡精灵进程 此服务监控网络界面,根据信号关闭或启动它,主要用于不经常连接的手提电脑.
network 是 网络 此服务打开网卡,或为调制调解器供电.
nfs 否 网络文件共享 此服务使用户访问NFS共享文件,为NFS系统客户机所必需.
nfsfs 否 网络文件共享服务器 只有在网络服务器上才被激活
nfslock 否 NFS文件锁定 只有在使用NFS网络/文件共享功能时,此服务才被激活.
nifd 否 Howl 客户端 此服务为零配置网络/系统提供ipv4链接本地服务
nscd 否 密码与群查找服务 此服务用于减慢N.I.S/Y.P.nist,ldap和hesiod之类的服务.专门为这些服务提供更长的中断时间.
ntpd 否 NTP服务器的第4版
numlock 否 数字锁定键灯光控制 此服务保持数字锁定键的激活状态,打开键盘上的数字键区.
Oki4daemon 否 OKI4和兼容win打印机的兼容性精灵进程 只有在你有这些打印机时才可用
pand 否 蓝牙个人区域网络 用于基于网络的家庭区域蓝牙技术
partmon 是 分区监控 此服务跟踪安装分区上的剩余空间.大多数文件系统浏览器使用它来计算指定分区上的剩余空间.
pcmcia 否 个人电脑内存卡国际协会
pg_autovacum 否 PostgreSQL维护 此服务自动运行PostgreSQL所需的空间(vacuum)来减少磁盘空间,从数据库中拖动临时表格,并删除PostgreSQL建立的临时文件.
pop3s 否 安全POP3服务 POP3 SSL服务器
portmap 否 RPC支持 支持那些应用rpc的罕有的应用软件
postgresql 否 Postgresql数据库引擎 只有在运行或开发Postgresql数据库驱动应用软件时才用到此服务
postfix 否 电子邮件服务器 与sendmail兼容的电子邮件服务器,比sendmail更新,也变得比sendmail更通用.
pptp 否 PPP断电服务 PPP频道断电服务,UPS打开时使用,以避免电源返回系统时出现文件锁定问题.
prelude 否 IDS 入侵探测系统
psacct 否 进程计算 活动进程追踪器,实际上是资源的浪费.
rawdevices 是 分配raw设备,阻止其使用 DVDS,oracle DBMS等需要此服务
rsync 否 远程同步 使指定目录树上的文件远程同步的服务器,常用于维护镜象地址,也在备份时用于保持公司文件为最新状态.
saned 否 网络扫描仪 从网络上的任何工作站提供扫描仪访问
shorwall 是 防火墙 一个非常优秀的IPTables防火墙
smartd 否 自我监控服务 用于智能设备的OS访问,此服务允许Linux告诉你是否设备将要变坏,但这要依靠设备的精确智能特性.
smb 否 Samba网络服务 此服务提供samba服务,实现Windows网络兼容性.
snmpd 否 简单的网络管理协议 用于小型(家庭办公室)网络
sound 否 声音系统 此为Linux声音系统的核心,适用于桌面系统,在服务器上则是资源的浪费.
squid 否 高速缓存工具 用于高速缓存网络页面及DNS登录
ssh?xinetd 否 X?inetd OpenSSH服务器 OpenSSH的按需运行版本
sshd 否 OpenSSH服务器 如果你需要SSH访问你的系统时才开启此服务,将不会使用x?inetd版本.
subversion 否 并发版本系统 CVS的新型替代品
swat 否 Samba网络管理工具 基于Samba管理的网络
syslog 是 系统登录 一项必要的服务,控制整个系统上的所有登录.
tmdns 否 多点传送DNS响应器 用于零配置环境
ultrabayed 否 ThinkPad工具 此服务为你的IBM ThindPad探测ultrabay,并在适当情况下启动/关闭IDE接口.
upsd 否 NUT精灵进程及驱动器 一个不间断地电源监控及报告工具,此服务向中心地址报告,产生关于UPS统计的数据库.
upsmon 否 UPS监控工具 此服务监控UPS的状况,在其运行低下时关系系统.
vncserver 否 虚拟网络计算服务器 在项目中应用VNC时非常有用
Webmin 否 远程管理工具 发行配套软件Agnostic远程管理工具.在机器不能总是直接访问,如网络服务器集群时有用.
winbind 否 Samba名称服务器 Samba网络运行所必需.此服务将用户与群数据从windows网络映射到Linux工作站中.
wine 否 Wine并非竞争者 此服务使MS Windows可在Linux上执行,WINE是商业产品Crossover Office的限制版本.
wlan 否 控制精灵进程 由于服务通常由init进程控制,此控制服务不常用.
x?inetd 是 监控并控制其它服务器的服务器 这是一项必需的服务,它实际上减少了服务器上CPU的负载.如果你需要SSH,ftp等但并不总是需要,x?inetd版本将在请求,甚至是远程需求时启动它们.此服务让它们生效,但如果它们一天/周只使用几次的话,又释放了时钟周期.
xfs 是 X字体服务器 你任何时间需要使用图形用户界面(GUI),就需要此服务.
ypbind 否 SUN的YP服务器名称服务器 此服务用于基于GLIBC的NIS/YP网络服务
服务名 必需(是/否) 用途描述 注解
acon 否 语言支持 特别支持左手书写语言:阿拉伯语,波斯语和希伯莱语
acpi 否 电源管理 手提电脑电池电扇监控器
acpid 否 监听精灵进程 此进程监听并分配内核中的acpi事件
adsl 否 内部ADSL开关控制 只有你的计算机内部有互联网连接adsl开关时才用到此服务
alsa 否 高级Linux声音构件 这个单独的声音系统实际包含在内核中
anacron 否 周期命令调度程序 一个任务调度工具
apmd 否 电源管理 手提电脑电源管理
apmiser 否 电源管理 另一手提电脑电池延长器
arpwatch 否 以太网IP地址配对监控器 用主机名监控并记录远程IP地址
atd 否 周期命令调度程序 一个任务调度工具
autofs 否 自动安装服务 几个命令服务文件系统自动安装之一.一些此类服务专门针对发行配套软件,如果你使用的发行配套软件拥有自己的自动安装系统,不要用这一个.
bluetooth 否 蓝牙技术核心 用于所有蓝牙服务
bootparamd 否 导入服务 以前导入无盘客户端/瘦客户端的方法.最新型的方法为零配置系统(zeroconf system).
canna 否 日语转换引擎
capi4linux 否 基本CAPI子系统
cpqarrayd 否 硬件服务 康柏独立冗余磁盘阵列(Raid Array)监控器
cpufreq 否 硬件服务 控查并配置CPU频率精灵程序模块
cpufreqd 否 硬件服务 此服务自动衡量CPU频率来减少过热情况.在超频时有用.
crond 是 周期命令调度程序 一个任务调度工具
Cups-lpd 否 使旧式Lunux或商业Unix系统连接到打印主机上. 只有在允许旧式系统访问打印机时才有用
cups 是 公共Unix打印系统 进行打印的必要功能
cvs 否 并发版本系统 用于管理多用户文档
devfsd 否 系统维护 此服务只清除动态桌面目录,除非你的系统经常崩溃,否则不需要此服务.
dhcpd 否 DHCP服务器 你的网络足够大,使用静态IP很麻烦吗?此项服务对你的网络进行DHCP IP配置,方便网络应用.
diald 否 拨号网络智能自动拨号器 此服务一经请求,即连接上网络.你一旦输入电子邮件,点击发送,它就自动连接,发送电邮并断开.
dkms 否 DKMS自安装导入 发行配套软件专用工具,用于OEM类型安装.它允许管理员密码的最初导入设置以及常规应用的用户名密码,系统的最后配置.
dm 是 显示管理器 X服务器的核心,使用图形用户界面(GUI)时必需.
dnbc 否 数字网络绑定Chrooter 这是一个简单的bash脚本,它将一个BIND服务器放入一个chroot牢笼中.安装BIND,发布脚本并重启.
Drakxtools-http 否 小型服务管理服务器 远程系统管理的发行配套软件专用工具.
dund 否 蓝牙拨号网络
fam 否 文件系统变更监控器 文件系统所有改变的记录器
finger 否 数据远程访问 此服务允许你远程访问用户登录日期,最后登录日期与时间.用于不在办公室时监控雇员的工作习惯,主要的安全违反,因为你正有效地在线发布公司机密数据.
freshclam 是 ClamAV更新器 用于自动更新ClamAV
gpm 是 鼠标 鼠标驱动器控制台模式
haldaemon 否 硬件监控系统 此服务监控硬件改变,为你改变新的或更改过的硬件.
harddrake 否 硬件服务 发行配套软件专用硬件探测与配置
heartbeat 否 高可用性服务 此服务旨在增加重要服务与服务器的优先级
hidd 否 蓝牙H.I.D.服务器
hplip 否 惠普Linux打印与成像 旧版惠普整成产品供应驱动器
hpoj 否 Pital?init,惠普办公喷墨打印机驱动器 惠普办公喷墨打印机旧式驱动器.新式驱动器包含在打印机的打印驱动器内.
httpd 否 Apache网络服务器 在系统上应用此服务有两个原因,一是要用它作为网络服务器,二是用它作为网址开发器.如果没有此二项,则不必安装Apache.
hylafax?server 否 企业传真机?调制调解器服务 此服务仅用于1类与2类传真机.如果你想用hylafax通过调制调解器发送传真,必须运行此服务.它并不是唯一有效的传真工具.
ibod 否 按需ISDN MPPP带宽 与拨号网络一同使用,按需连接到网络.
identd 否 TCP连接鉴定
imaps 否 安全IMAP服务器
imaps 否 IMAP服务器
iplog 否 用主机名或远程主机记录TCP,UDP,ICMP. 有用的网络监控工具
ipop2 否 POP2邮件服务器
ipop3 否 POP3邮件服务器
ipsec 否 加密与验证通信 KLIPS为内核一半,PLUTO为用户空间一半.在远程访问情况下十分有用.
iptables 是 基于Packet过滤防火墙内核 所有优秀的Linux防火墙都基于此项服务
ipvsadmin 否 Linux核心IP虚拟服务器 最早的Linux网络系统之一,已不常用.
irda 否 红外线设备界面 以前的无线设备支持
keytable 是 键盘映射 此服务明确告诉系统你正在使用哪种键盘
kheader 否 导入服务 此服务自动重建内核头导入
lads 否 登录异常探测系统 跟踪登录企图并警告入侵企图的工具
laptop mode 否 电源管理 减少电力耗费,延长手提电脑电池寿命的工具
leafnode 否 X? INETD NNTP服务
lisa 否 局域网信息服务器
lmsensors 否 硬件健康监控器 此服务要求系统主板支持并有合适的监控系统,如CPU温度与电压监控器.
mailman 否 GUN邮件列表管理器 常用的邮件列表工具,带Python编写的管理网络界面.它允许列表成员发送邮件并回复邮件到同一个地址进行交流.它还可用于向那些发送请求的用户传送新闻时讯/产品更新.
mandi 否 交互式防火墙 允许暂时无线访问系统的专用服务,将为当前任务开放iptables防火墙,仅用于无线设备访问.在用户许可情况下才可使用,不能自动使用.
mdadm 否 软阵列监控服务 这也是一个用于上述软件阵列栏的管理工具
mdnsresponder 否 零配置DNS配置工具
messagebus 是 事件监控服务 此服务在必要时向所有用户发送广播信息,如服务器将要重启.
mon 是 系统监控精灵进程 许多系统服务要求此服务来运行
mysqld 否 MySQL服务器 如果你不需要这个数据库,不要打开它.
named 否 绑定(BIND)服务器 这就是声名狼藉的名称服务器
netplugd 否 网卡精灵进程 此服务监控网络界面,根据信号关闭或启动它,主要用于不经常连接的手提电脑.
network 是 网络 此服务打开网卡,或为调制调解器供电.
nfs 否 网络文件共享 此服务使用户访问NFS共享文件,为NFS系统客户机所必需.
nfsfs 否 网络文件共享服务器 只有在网络服务器上才被激活
nfslock 否 NFS文件锁定 只有在使用NFS网络/文件共享功能时,此服务才被激活.
nifd 否 Howl 客户端 此服务为零配置网络/系统提供ipv4链接本地服务
nscd 否 密码与群查找服务 此服务用于减慢N.I.S/Y.P.nist,ldap和hesiod之类的服务.专门为这些服务提供更长的中断时间.
ntpd 否 NTP服务器的第4版
numlock 否 数字锁定键灯光控制 此服务保持数字锁定键的激活状态,打开键盘上的数字键区.
Oki4daemon 否 OKI4和兼容win打印机的兼容性精灵进程 只有在你有这些打印机时才可用
pand 否 蓝牙个人区域网络 用于基于网络的家庭区域蓝牙技术
partmon 是 分区监控 此服务跟踪安装分区上的剩余空间.大多数文件系统浏览器使用它来计算指定分区上的剩余空间.
pcmcia 否 个人电脑内存卡国际协会
pg_autovacum 否 PostgreSQL维护 此服务自动运行PostgreSQL所需的空间(vacuum)来减少磁盘空间,从数据库中拖动临时表格,并删除PostgreSQL建立的临时文件.
pop3s 否 安全POP3服务 POP3 SSL服务器
portmap 否 RPC支持 支持那些应用rpc的罕有的应用软件
postgresql 否 Postgresql数据库引擎 只有在运行或开发Postgresql数据库驱动应用软件时才用到此服务
postfix 否 电子邮件服务器 与sendmail兼容的电子邮件服务器,比sendmail更新,也变得比sendmail更通用.
pptp 否 PPP断电服务 PPP频道断电服务,UPS打开时使用,以避免电源返回系统时出现文件锁定问题.
prelude 否 IDS 入侵探测系统
psacct 否 进程计算 活动进程追踪器,实际上是资源的浪费.
rawdevices 是 分配raw设备,阻止其使用 DVDS,oracle DBMS等需要此服务
rsync 否 远程同步 使指定目录树上的文件远程同步的服务器,常用于维护镜象地址,也在备份时用于保持公司文件为最新状态.
saned 否 网络扫描仪 从网络上的任何工作站提供扫描仪访问
shorwall 是 防火墙 一个非常优秀的IPTables防火墙
smartd 否 自我监控服务 用于智能设备的OS访问,此服务允许Linux告诉你是否设备将要变坏,但这要依靠设备的精确智能特性.
smb 否 Samba网络服务 此服务提供samba服务,实现Windows网络兼容性.
snmpd 否 简单的网络管理协议 用于小型(家庭办公室)网络
sound 否 声音系统 此为Linux声音系统的核心,适用于桌面系统,在服务器上则是资源的浪费.
squid 否 高速缓存工具 用于高速缓存网络页面及DNS登录
ssh?xinetd 否 X?inetd OpenSSH服务器 OpenSSH的按需运行版本
sshd 否 OpenSSH服务器 如果你需要SSH访问你的系统时才开启此服务,将不会使用x?inetd版本.
subversion 否 并发版本系统 CVS的新型替代品
swat 否 Samba网络管理工具 基于Samba管理的网络
syslog 是 系统登录 一项必要的服务,控制整个系统上的所有登录.
tmdns 否 多点传送DNS响应器 用于零配置环境
ultrabayed 否 ThinkPad工具 此服务为你的IBM ThindPad探测ultrabay,并在适当情况下启动/关闭IDE接口.
upsd 否 NUT精灵进程及驱动器 一个不间断地电源监控及报告工具,此服务向中心地址报告,产生关于UPS统计的数据库.
upsmon 否 UPS监控工具 此服务监控UPS的状况,在其运行低下时关系系统.
vncserver 否 虚拟网络计算服务器 在项目中应用VNC时非常有用
Webmin 否 远程管理工具 发行配套软件Agnostic远程管理工具.在机器不能总是直接访问,如网络服务器集群时有用.
winbind 否 Samba名称服务器 Samba网络运行所必需.此服务将用户与群数据从windows网络映射到Linux工作站中.
wine 否 Wine并非竞争者 此服务使MS Windows可在Linux上执行,WINE是商业产品Crossover Office的限制版本.
wlan 否 控制精灵进程 由于服务通常由init进程控制,此控制服务不常用.
x?inetd 是 监控并控制其它服务器的服务器 这是一项必需的服务,它实际上减少了服务器上CPU的负载.如果你需要SSH,ftp等但并不总是需要,x?inetd版本将在请求,甚至是远程需求时启动它们.此服务让它们生效,但如果它们一天/周只使用几次的话,又释放了时钟周期.
xfs 是 X字体服务器 你任何时间需要使用图形用户界面(GUI),就需要此服务.
ypbind 否 SUN的YP服务器名称服务器 此服务用于基于GLIBC的NIS/YP网络服务
mknod -m 666 /dev/null c 1 3
mknod - make block or character special files
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
option 有用的就是 -m 了
name 自定义
type 有 b 和 c 还有 p
主设备号
次设备号
主设备号是由/usr/src/linux/include/linux/major.h定义的,如下定义了一个DOC设备:
#define IGEL_FLASH_MAJOR 62
假如有一个命令mknod doc b 62 0 :
其中的doc为定义的名字,b指块设备,0指的是整个DOC。如果把0换为1,则1指的是DOC的第一个分区。2是第2个,依次类推。
至于mknod console c 5 1 的意思也很相似:
console是设备的名字
c指字符设备
5是该设备在major.h中定义的标记
1是第一个子设备
mknod console c 5 1
console为设备文件名,自己随便取
c是指字符型设备 (可选b,块设备)
5是主设备号 /dev/devices里面记录现有的设备
找个没有用的就可以了
1是次设备号,当你要给两个同样的设备上一个驱动的时候就要分了,从0开始,1就是第二个了
设备文件
对于每种硬件设备,系统内核有相应的设备驱动程序负责对它的处理。而在Unix中,使用设备文件的方式来表示硬件设备,每种设备驱动程序都被抽象为设备文件的形式,这样就给应用程序一个一致的文件界面,方便应用程序和操作系统之间的通信。
习惯上,所有的设备文件都放置在/dev目录下。
$ ls -l /dev/rfd0 /dev/fd0
brw-r----- 9 root operator 2, 0 Nov 12 13:32 /dev/fd0
crw-r----- 9 root operator 9, 0 Nov 12 13:32 /dev/rfd0
在上面的列表中可以看到原来显示文件大小的地方,现在改为显示两个用逗号分隔的数字。这是系统用来表示设备的两个重要的序号,第一个为主设备号(major number),用来表示设备使用的硬件驱动程序在系统中的序号;第二个为从设备号(minor number),硬件驱动程序使用它来区分不同的设备和判断如何进行处理。FreeBSD下主设备号用8位表示,而从设备号用24位来表示。事实上设备文件的名字并不重要,重要的是这两个设备号,操作系统使用它确定硬件驱动程序,并与硬件驱动程序进行通信。
1) 磁盘和块设备文件
在Unix下将设备分为两种,块设备和字符设备,其中块设备主要用于随机存取的目的,磁盘为这一类设备的代表,而字符设备用于顺序存取的目的,例如磁带或终端设备就属于这个类别。
磁盘设备的命名方式在前一章中提到过,磁盘设备由磁盘名、磁盘的序号、分区的序号、以及FreeBSD子分区的序号来表示,例如在设备 wd0s1a中,wd为驱动程序,此后为设备序号,0表示为这个驱动程序的第一个设备,Unix习惯上从0开始计数,第三部分的分区序号为s1,注意这里为第一个分区,因为s1是从1开始向下排列的,与一般Unix的习惯不同,这是因为分区的概念是一个DOS概念,因此这里也使用与DOS相对应的顺序,最后一个a为FreeBSD子分区的顺序,每个UFS基本分区可以有8个子分区,这8个分区按照习惯用于不同的目的,例如wd0s1a用于根文件系统, wd0s1b用做交换分区,使用wd0s1c表示整个硬盘分区wd0s1。因此可以将fd0c用于对整个软盘fd0进行存取,wcd0c用于对整个光盘 wcd0进行存取等。
传统名字,例如wd0a,可以用于表示第一个UFS分区上的a子分区,如wd0s1a。一般一个硬盘上只有一个UFS分区,因此可以直接使用传统名字标识磁盘分区。
在使用ls命令列表时,系统使用c(character)标识一个字符设备文件,使用b(block)标识块设备文件。
$ ls -l /dev/*wd0s1
crw-r----- 1 root operator 3, 131072 Oct 31 19:59 /dev/rwd0s1
brw-r----- 1 root operator 0, 131072 Oct 31 19:59 /dev/wd0s1
虽然硬盘设备为块设备,用于随机存取的目的。但它也可以被顺序存取,这种方式称为raw方式。使用raw方式存取硬盘,就需要一个对应的字符类型的设备文件,对应wd0s1硬盘设备的字符类型硬盘设备为rwd0s1,设备名中第一个字母使用r表示对硬盘的raw方式顺序存取。
由于设备文件就代表了整个设备,就可以使用FreeBSD的标准命令以raw方式直接操作设备文件,从而直接访问硬件设备。利用这种方式,能完成很多有用的工作,但是这种方式也非常危险,例如对硬盘设备文件的操作失误会破坏整个硬盘的数据。幸好大部分直接访问设备的操作都为读取相应数据的操作,而不需要写入磁盘设备。
当某个设备不可使用,则其对应的设备文件也不能正常访问,因此直接访问设备文件可以判断对应的设备是否真正正常。例如,判断连接到第一个串口, ttyd0上的鼠标是否正常工作,使用命令 “cat
但是如果存在其他的程序接管了这个设备,有可能就不能得到正确的结果。例如系统运行了moused,由moused控制了鼠标端口,那么”cat
cat或其他命令,没有控制具体接收到数据的多少,更有效的系统工具是dd,它能精确输入输出一定数量的数据。例如:
# dd if=/dev/rwd0 of=mbr count=1 bs=512
这将以512字节为单位,读取硬盘wd0上一个单位的数据,保存到名字为mbr的文件中,通常这是硬盘wd0上的主引导扇区。
2) 设备文件的创建
通常情况下,安装系统时已经创建了常用的设备文件,可以直接访问这些设备文件来访问设备。但在用户重新定制内核,并添加了新硬件驱动程序之后,新驱动程序对应的设备文件就可能不存在。在FreeBSD中,最常见的例子就是在内核中增加声卡的驱动程序时,就需要创建相应设备文件。
创建设备文件的基本方式是使用mknod,但是必须知道该设备的正确设备号才可以。另一种简单的方式是使用/dev目录下的shell程序 MAKEDEV来完成,MAKEDEV实质上就是记录了很多设备的名字与其设备号之间的关系的程序,因此它能使用正确的设备号来创建设备。首先进入 /dev目录,然后再执行MAKEDEV。
# cd /dev
# sh MAKEDEV snd0
MAKEDEV将使用设备名作参数创建设备文件,同时也创建这个设备文件依赖的其他相关设备文件。MAKEDEV的参数,并不一定为创建的设备文件名。例如建立 “MAKEDEV vty8” 将建立ttyv0到ttyv7共8个设备文件,使用 “MAKEDEV wd1s1a” 命令,将建立 wd1、wd1s1、wd1s2等,以及wd1s1a、wd1s1b等设备文件。也可以使用all做MAKEDEV的参数,这将首先清除/dev目录下的所有设备文件,然后MAKEDEV创建所有预设的设备文件。一般情况下这将创建足够多的设备文件,其中的大部分设备文件在具体的系统中不会用得到。
如果对一个系统中没有(或者即使有但内核没有支持或探测到)的设备对应的设备文件进行操作,则系统返回Device not configured的错误信息。
MAKEDEV将使用mknod和对应设备的正确参数,包括字符或块设备、主设备号和从设备号来建立相应的设备文件。管理员也可以直接使用 mknod创建设备文件,但这就必须将这些设备参数统统指定正确才行。因此除非对系统中的硬件驱动程序特别熟悉,一般不直接使用mknod来创建设备文件。
mknod - make block or character special files
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
option 有用的就是 -m 了
name 自定义
type 有 b 和 c 还有 p
主设备号
次设备号
主设备号是由/usr/src/linux/include/linux/major.h定义的,如下定义了一个DOC设备:
#define IGEL_FLASH_MAJOR 62
假如有一个命令mknod doc b 62 0 :
其中的doc为定义的名字,b指块设备,0指的是整个DOC。如果把0换为1,则1指的是DOC的第一个分区。2是第2个,依次类推。
至于mknod console c 5 1 的意思也很相似:
console是设备的名字
c指字符设备
5是该设备在major.h中定义的标记
1是第一个子设备
mknod console c 5 1
console为设备文件名,自己随便取
c是指字符型设备 (可选b,块设备)
5是主设备号 /dev/devices里面记录现有的设备
找个没有用的就可以了
1是次设备号,当你要给两个同样的设备上一个驱动的时候就要分了,从0开始,1就是第二个了
设备文件
对于每种硬件设备,系统内核有相应的设备驱动程序负责对它的处理。而在Unix中,使用设备文件的方式来表示硬件设备,每种设备驱动程序都被抽象为设备文件的形式,这样就给应用程序一个一致的文件界面,方便应用程序和操作系统之间的通信。
习惯上,所有的设备文件都放置在/dev目录下。
$ ls -l /dev/rfd0 /dev/fd0
brw-r----- 9 root operator 2, 0 Nov 12 13:32 /dev/fd0
crw-r----- 9 root operator 9, 0 Nov 12 13:32 /dev/rfd0
在上面的列表中可以看到原来显示文件大小的地方,现在改为显示两个用逗号分隔的数字。这是系统用来表示设备的两个重要的序号,第一个为主设备号(major number),用来表示设备使用的硬件驱动程序在系统中的序号;第二个为从设备号(minor number),硬件驱动程序使用它来区分不同的设备和判断如何进行处理。FreeBSD下主设备号用8位表示,而从设备号用24位来表示。事实上设备文件的名字并不重要,重要的是这两个设备号,操作系统使用它确定硬件驱动程序,并与硬件驱动程序进行通信。
1) 磁盘和块设备文件
在Unix下将设备分为两种,块设备和字符设备,其中块设备主要用于随机存取的目的,磁盘为这一类设备的代表,而字符设备用于顺序存取的目的,例如磁带或终端设备就属于这个类别。
磁盘设备的命名方式在前一章中提到过,磁盘设备由磁盘名、磁盘的序号、分区的序号、以及FreeBSD子分区的序号来表示,例如在设备 wd0s1a中,wd为驱动程序,此后为设备序号,0表示为这个驱动程序的第一个设备,Unix习惯上从0开始计数,第三部分的分区序号为s1,注意这里为第一个分区,因为s1是从1开始向下排列的,与一般Unix的习惯不同,这是因为分区的概念是一个DOS概念,因此这里也使用与DOS相对应的顺序,最后一个a为FreeBSD子分区的顺序,每个UFS基本分区可以有8个子分区,这8个分区按照习惯用于不同的目的,例如wd0s1a用于根文件系统, wd0s1b用做交换分区,使用wd0s1c表示整个硬盘分区wd0s1。因此可以将fd0c用于对整个软盘fd0进行存取,wcd0c用于对整个光盘 wcd0进行存取等。
传统名字,例如wd0a,可以用于表示第一个UFS分区上的a子分区,如wd0s1a。一般一个硬盘上只有一个UFS分区,因此可以直接使用传统名字标识磁盘分区。
在使用ls命令列表时,系统使用c(character)标识一个字符设备文件,使用b(block)标识块设备文件。
$ ls -l /dev/*wd0s1
crw-r----- 1 root operator 3, 131072 Oct 31 19:59 /dev/rwd0s1
brw-r----- 1 root operator 0, 131072 Oct 31 19:59 /dev/wd0s1
虽然硬盘设备为块设备,用于随机存取的目的。但它也可以被顺序存取,这种方式称为raw方式。使用raw方式存取硬盘,就需要一个对应的字符类型的设备文件,对应wd0s1硬盘设备的字符类型硬盘设备为rwd0s1,设备名中第一个字母使用r表示对硬盘的raw方式顺序存取。
由于设备文件就代表了整个设备,就可以使用FreeBSD的标准命令以raw方式直接操作设备文件,从而直接访问硬件设备。利用这种方式,能完成很多有用的工作,但是这种方式也非常危险,例如对硬盘设备文件的操作失误会破坏整个硬盘的数据。幸好大部分直接访问设备的操作都为读取相应数据的操作,而不需要写入磁盘设备。
当某个设备不可使用,则其对应的设备文件也不能正常访问,因此直接访问设备文件可以判断对应的设备是否真正正常。例如,判断连接到第一个串口, ttyd0上的鼠标是否正常工作,使用命令 “cat
但是如果存在其他的程序接管了这个设备,有可能就不能得到正确的结果。例如系统运行了moused,由moused控制了鼠标端口,那么”cat
cat或其他命令,没有控制具体接收到数据的多少,更有效的系统工具是dd,它能精确输入输出一定数量的数据。例如:
# dd if=/dev/rwd0 of=mbr count=1 bs=512
这将以512字节为单位,读取硬盘wd0上一个单位的数据,保存到名字为mbr的文件中,通常这是硬盘wd0上的主引导扇区。
2) 设备文件的创建
通常情况下,安装系统时已经创建了常用的设备文件,可以直接访问这些设备文件来访问设备。但在用户重新定制内核,并添加了新硬件驱动程序之后,新驱动程序对应的设备文件就可能不存在。在FreeBSD中,最常见的例子就是在内核中增加声卡的驱动程序时,就需要创建相应设备文件。
创建设备文件的基本方式是使用mknod,但是必须知道该设备的正确设备号才可以。另一种简单的方式是使用/dev目录下的shell程序 MAKEDEV来完成,MAKEDEV实质上就是记录了很多设备的名字与其设备号之间的关系的程序,因此它能使用正确的设备号来创建设备。首先进入 /dev目录,然后再执行MAKEDEV。
# cd /dev
# sh MAKEDEV snd0
MAKEDEV将使用设备名作参数创建设备文件,同时也创建这个设备文件依赖的其他相关设备文件。MAKEDEV的参数,并不一定为创建的设备文件名。例如建立 “MAKEDEV vty8” 将建立ttyv0到ttyv7共8个设备文件,使用 “MAKEDEV wd1s1a” 命令,将建立 wd1、wd1s1、wd1s2等,以及wd1s1a、wd1s1b等设备文件。也可以使用all做MAKEDEV的参数,这将首先清除/dev目录下的所有设备文件,然后MAKEDEV创建所有预设的设备文件。一般情况下这将创建足够多的设备文件,其中的大部分设备文件在具体的系统中不会用得到。
如果对一个系统中没有(或者即使有但内核没有支持或探测到)的设备对应的设备文件进行操作,则系统返回Device not configured的错误信息。
MAKEDEV将使用mknod和对应设备的正确参数,包括字符或块设备、主设备号和从设备号来建立相应的设备文件。管理员也可以直接使用 mknod创建设备文件,但这就必须将这些设备参数统统指定正确才行。因此除非对系统中的硬件驱动程序特别熟悉,一般不直接使用mknod来创建设备文件。
make[1]: *** [mod_jk.lo] Error 1
[ 2009/03/31 21:00 | by selboo ]
在配置apache+tomcat时
安装jk连接器
cd /opt/tomcat/tomcat-connectors-1.2.28-src/native
./configure --with-apxs=/usr/local/apache-2.2.11/bin/apxs --with-java-home=/usr/local/jdk
make && make install
报错了
make[1]: *** [mod_jk.lo] Error 1
经过N百度 Google 终于解决了是因为编译apache忘记增加 --enable-so 参数
重新编译下apache
问题解决了
安装jk连接器
cd /opt/tomcat/tomcat-connectors-1.2.28-src/native
./configure --with-apxs=/usr/local/apache-2.2.11/bin/apxs --with-java-home=/usr/local/jdk
make && make install
报错了
make[1]: *** [mod_jk.lo] Error 1
经过N百度 Google 终于解决了是因为编译apache忘记增加 --enable-so 参数
重新编译下apache
问题解决了
>dig sina.com.cn //查询A记录
;; QUESTION SECTION:
;sina.com.cn. IN A
;; ANSWER SECTION:
sina.com.cn. 37 IN A 202.108.33.32
>dig sina.com.cn ns //查询NS记录
;; QUESTION SECTION:
;sina.com.cn. IN NS
;; ANSWER SECTION:
sina.com.cn. 21478 IN NS ns2.sina.com.cn.
sina.com.cn. 21478 IN NS ns3.sina.com.cn.
sina.com.cn. 21478 IN NS ns1.sina.com.cn.
>dig sina.com.cn soa //查询SOA记录
;; QUESTION SECTION:
;sina.com.cn. IN SOA
;; ANSWER SECTION:
sina.com.cn. 600 IN SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600
另外,还可以
dig @Server sina.com.cn. //在Server服务器上查询sina.com.cn的记录,比如
>dig @210.51.191.22 sina.com.cn
;; QUESTION SECTION:
;sina.com.cn. IN A
;; AUTHORITY SECTION:
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
;; ADDITIONAL SECTION:
ns1.sina.com.cn. 21600 IN A 202.106.184.166
ns2.sina.com.cn. 21600 IN A 61.172.201.254
ns3.sina.com.cn. 21600 IN A 202.108.44.55
# 查找一个域的授权 dns 服务器
dig sina.com.cn. +nssearch
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns1.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns3.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns2.sina.com.cn in 46 ms.
# 从根服务器开始追踪一个域名的解析过程
>dig news.sina.com.cn +trace
;; global options: printcmd
. 518138 IN NS A.ROOT-SERVERS.NET.
. 518138 IN NS B.ROOT-SERVERS.NET.
. 518138 IN NS C.ROOT-SERVERS.NET.
. 518138 IN NS D.ROOT-SERVERS.NET.
. 518138 IN NS E.ROOT-SERVERS.NET.
. 518138 IN NS F.ROOT-SERVERS.NET.
. 518138 IN NS G.ROOT-SERVERS.NET.
. 518138 IN NS H.ROOT-SERVERS.NET.
. 518138 IN NS I.ROOT-SERVERS.NET.
. 518138 IN NS J.ROOT-SERVERS.NET.
. 518138 IN NS K.ROOT-SERVERS.NET.
. 518138 IN NS L.ROOT-SERVERS.NET.
. 518138 IN NS M.ROOT-SERVERS.NET.
;; Received 228 bytes from 192.168.1.1#53(192.168.1.1) in 15 ms
cn. 172800 IN NS C.DNS.cn.
cn. 172800 IN NS D.DNS.cn.
cn. 172800 IN NS E.DNS.cn.
cn. 172800 IN NS NS.CERNET.NET.
cn. 172800 IN NS A.DNS.cn.
cn. 172800 IN NS B.DNS.cn.
;; Received 297 bytes from 198.41.0.4#53(A.ROOT-SERVERS.NET) in 281 ms
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
;; Received 136 bytes from 203.119.29.1#53(E.DNS.cn) in 171 ms
news.sina.com.cn. 60 IN CNAME jupiter.sina.com.cn.
jupiter.sina.com.cn. 60 IN CNAME hydra.sina.com.cn.
hydra.sina.com.cn. 60 IN A 218.30.108.61
hydra.sina.com.cn. 60 IN A 218.30.108.62
hydra.sina.com.cn. 60 IN A 218.30.108.63
hydra.sina.com.cn. 60 IN A 218.30.108.64
hydra.sina.com.cn. 60 IN A 218.30.108.65
hydra.sina.com.cn. 60 IN A 218.30.108.66
hydra.sina.com.cn. 60 IN A 218.30.108.67
hydra.sina.com.cn. 60 IN A 218.30.108.68
hydra.sina.com.cn. 60 IN A 218.30.108.69
hydra.sina.com.cn. 60 IN A 218.30.108.72
hydra.sina.com.cn. 60 IN A 218.30.108.73
hydra.sina.com.cn. 60 IN A 218.30.108.74
hydra.sina.com.cn. 60 IN A 218.30.108.55
hydra.sina.com.cn. 60 IN A 218.30.108.56
hydra.sina.com.cn. 60 IN A 218.30.108.57
hydra.sina.com.cn. 60 IN A 218.30.108.58
sina.com.cn. 86400 IN NS ns1.sina.com.cn.
sina.com.cn. 86400 IN NS ns2.sina.com.cn.
sina.com.cn. 86400 IN NS ns3.sina.com.cn.
;; Received 434 bytes from 202.106.184.166#53(ns1.sina.com.cn) in 31 ms
从上面的记录,我们可以看到整个的流程,从根服务器查询到cn的根服务器,然后查询到sina.com.cn的名字服务器,
news.sina.com.cn -> jupiter.sina.com.cn -->hydra.sina.com.cn 最后得到hydra的服务器IP。
;; QUESTION SECTION:
;sina.com.cn. IN A
;; ANSWER SECTION:
sina.com.cn. 37 IN A 202.108.33.32
>dig sina.com.cn ns //查询NS记录
;; QUESTION SECTION:
;sina.com.cn. IN NS
;; ANSWER SECTION:
sina.com.cn. 21478 IN NS ns2.sina.com.cn.
sina.com.cn. 21478 IN NS ns3.sina.com.cn.
sina.com.cn. 21478 IN NS ns1.sina.com.cn.
>dig sina.com.cn soa //查询SOA记录
;; QUESTION SECTION:
;sina.com.cn. IN SOA
;; ANSWER SECTION:
sina.com.cn. 600 IN SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600
另外,还可以
dig @Server sina.com.cn. //在Server服务器上查询sina.com.cn的记录,比如
>dig @210.51.191.22 sina.com.cn
;; QUESTION SECTION:
;sina.com.cn. IN A
;; AUTHORITY SECTION:
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
;; ADDITIONAL SECTION:
ns1.sina.com.cn. 21600 IN A 202.106.184.166
ns2.sina.com.cn. 21600 IN A 61.172.201.254
ns3.sina.com.cn. 21600 IN A 202.108.44.55
# 查找一个域的授权 dns 服务器
dig sina.com.cn. +nssearch
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns1.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns3.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns2.sina.com.cn in 46 ms.
# 从根服务器开始追踪一个域名的解析过程
>dig news.sina.com.cn +trace
;; global options: printcmd
. 518138 IN NS A.ROOT-SERVERS.NET.
. 518138 IN NS B.ROOT-SERVERS.NET.
. 518138 IN NS C.ROOT-SERVERS.NET.
. 518138 IN NS D.ROOT-SERVERS.NET.
. 518138 IN NS E.ROOT-SERVERS.NET.
. 518138 IN NS F.ROOT-SERVERS.NET.
. 518138 IN NS G.ROOT-SERVERS.NET.
. 518138 IN NS H.ROOT-SERVERS.NET.
. 518138 IN NS I.ROOT-SERVERS.NET.
. 518138 IN NS J.ROOT-SERVERS.NET.
. 518138 IN NS K.ROOT-SERVERS.NET.
. 518138 IN NS L.ROOT-SERVERS.NET.
. 518138 IN NS M.ROOT-SERVERS.NET.
;; Received 228 bytes from 192.168.1.1#53(192.168.1.1) in 15 ms
cn. 172800 IN NS C.DNS.cn.
cn. 172800 IN NS D.DNS.cn.
cn. 172800 IN NS E.DNS.cn.
cn. 172800 IN NS NS.CERNET.NET.
cn. 172800 IN NS A.DNS.cn.
cn. 172800 IN NS B.DNS.cn.
;; Received 297 bytes from 198.41.0.4#53(A.ROOT-SERVERS.NET) in 281 ms
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
;; Received 136 bytes from 203.119.29.1#53(E.DNS.cn) in 171 ms
news.sina.com.cn. 60 IN CNAME jupiter.sina.com.cn.
jupiter.sina.com.cn. 60 IN CNAME hydra.sina.com.cn.
hydra.sina.com.cn. 60 IN A 218.30.108.61
hydra.sina.com.cn. 60 IN A 218.30.108.62
hydra.sina.com.cn. 60 IN A 218.30.108.63
hydra.sina.com.cn. 60 IN A 218.30.108.64
hydra.sina.com.cn. 60 IN A 218.30.108.65
hydra.sina.com.cn. 60 IN A 218.30.108.66
hydra.sina.com.cn. 60 IN A 218.30.108.67
hydra.sina.com.cn. 60 IN A 218.30.108.68
hydra.sina.com.cn. 60 IN A 218.30.108.69
hydra.sina.com.cn. 60 IN A 218.30.108.72
hydra.sina.com.cn. 60 IN A 218.30.108.73
hydra.sina.com.cn. 60 IN A 218.30.108.74
hydra.sina.com.cn. 60 IN A 218.30.108.55
hydra.sina.com.cn. 60 IN A 218.30.108.56
hydra.sina.com.cn. 60 IN A 218.30.108.57
hydra.sina.com.cn. 60 IN A 218.30.108.58
sina.com.cn. 86400 IN NS ns1.sina.com.cn.
sina.com.cn. 86400 IN NS ns2.sina.com.cn.
sina.com.cn. 86400 IN NS ns3.sina.com.cn.
;; Received 434 bytes from 202.106.184.166#53(ns1.sina.com.cn) in 31 ms
从上面的记录,我们可以看到整个的流程,从根服务器查询到cn的根服务器,然后查询到sina.com.cn的名字服务器,
news.sina.com.cn -> jupiter.sina.com.cn -->hydra.sina.com.cn 最后得到hydra的服务器IP。
Nginx在url最后补全"/"符号
[ 2009/03/29 22:22 | by selboo ]
from:http://blog.chinaunix.net/u1/55815/showart_1883628.html
今天自己在nginx环境下配置了一个wordpress,用来在实际的应用中学习nginx,不料,却遇到了个小问题,先把文件解决办法总结如下。
我设置了一个域名:http://www.wenzi.cn/
我的wordpress地址是:http://www.wenzi.cn/wordpress/
现在的问题就是如果我访问http://www.wenzi.cn/wordpress/就可以显示出我的blog的地址,但如果我访问http://www.wenzi.cn/wordpress结果却提示说找不到所需要的页面。群里问了一下,说是,nginx不会自动在请求的最后加上一个/的,原因是nginx不会自动判断请求的是一个文件还是一个目录,google上可以搜到解决办法,于是乎我就去google了一下,确实找到了
在配置文件中location里加入如下代码
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
这样再对http://www.wenzi.cn/wordpress请求,nginx就会进行判断了,如果请求的是一个文件夹,会自动在最后加上/符号,如果请求的是一个文件,则不会改变原有url
接下来对这段代码进行一个解释
1,if (-d $request_filename),如果请求的是一个文件夹,则为真,进到if语句中执行
2,rewrite是执行url重写操作
3,^/(.*)([^/])$表示以/符号开始并紧跟着任何字符,同时不是以/为结束的字符串,在我的url中,(.*)表示的wordpres,([^/])表示的s
4,http://$host/$1$2/ 表示的重写后的地址,$host是请求的域名,$1是前面第一个括号里的内容,在我的url里就是wordpres $2是前面第二个括号里的内容,在我的url里是s
5,permanent表示,返回值是301
今天自己在nginx环境下配置了一个wordpress,用来在实际的应用中学习nginx,不料,却遇到了个小问题,先把文件解决办法总结如下。
我设置了一个域名:http://www.wenzi.cn/
我的wordpress地址是:http://www.wenzi.cn/wordpress/
现在的问题就是如果我访问http://www.wenzi.cn/wordpress/就可以显示出我的blog的地址,但如果我访问http://www.wenzi.cn/wordpress结果却提示说找不到所需要的页面。群里问了一下,说是,nginx不会自动在请求的最后加上一个/的,原因是nginx不会自动判断请求的是一个文件还是一个目录,google上可以搜到解决办法,于是乎我就去google了一下,确实找到了
在配置文件中location里加入如下代码
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
这样再对http://www.wenzi.cn/wordpress请求,nginx就会进行判断了,如果请求的是一个文件夹,会自动在最后加上/符号,如果请求的是一个文件,则不会改变原有url
接下来对这段代码进行一个解释
1,if (-d $request_filename),如果请求的是一个文件夹,则为真,进到if语句中执行
2,rewrite是执行url重写操作
3,^/(.*)([^/])$表示以/符号开始并紧跟着任何字符,同时不是以/为结束的字符串,在我的url中,(.*)表示的wordpres,([^/])表示的s
4,http://$host/$1$2/ 表示的重写后的地址,$host是请求的域名,$1是前面第一个括号里的内容,在我的url里就是wordpres $2是前面第二个括号里的内容,在我的url里是s
5,permanent表示,返回值是301