IDEA IDEA 9 快捷键 utf-8 编码 参数设置 编码设置 设置配置 自动保存设置 优化设置

1. IDEA内存优化
先看看你机器本身的配置而配置.
\IntelliJ IDEA 8\bin\idea.exe.vmoptions
-----------------------------------------
-Xms64m
-Xmx256m
-XX:MaxPermSize=92m
-ea
-server
-Dsun.awt.keepWorkingSetOnMinimize=true

 

查询快捷键
CTRL+N   查找类
CTRL+SHIFT+N  查找文件
CTRL+SHIFT+ALT+N 查找类中的方法或变量
CIRL+B   找变量的来源
CTRL+ALT+B  找所有的子类
CTRL+SHIFT+B  找变量的类
CTRL+G   定位行
CTRL+F   在当前窗口查找文本
CTRL+SHIFT+F  在指定窗口查找文本
CTRL+R   在当前窗口替换文本
CTRL+SHIFT+R  在指定窗口替换文本
ALT+SHIFT+C  查找修改的文件
CTRL+E   最近打开的文件
F3   向下查找关键字出现位置
SHIFT+F3  向上一个关键字出现位置
F4   查找变量来源
CTRL+ALT+F7  选中的字符 查找工程出现的地方
CTRL+SHIFT+O  弹出显示查找内容

 

 

SVN 管理
把SVN库添加到IDEA中 SETTING ->  VERSION CONTROL -> VCS = SVBVERSION

 

 

自动代码
ALT+回车  导入包,自动修正
CTRL+ALT+L  格式化代码
CTRL+ALT+I  自动缩进
CTRL+ALT+O  优化导入的类和包
ALT+INSERT  生成代码(如GET,SET方法,构造函数等)
CTRL+E或者ALT+SHIFT+C 最近更改的代码
CTRL+SHIFT+SPACE 自动补全代码
CTRL+空格  代码提示
CTRL+ALT+SPACE  类名或接口名提示
CTRL+P   方法参数提示
CTRL+J   自动代码
CTRL+ALT+T  把选中的代码放在 TRY{} IF{} ELSE{} 里

 

 

复制快捷方式
F5   拷贝文件快捷方式
CTRL+D   复制行
CTRL+X   剪切,删除行
CTRL+SHIFT+V  可以复制多个文本

 

 

高亮
CTRL+F   选中的文字,高亮显示 上下跳到下一个或者上一个
F2 或SHIFT+F2  高亮错误或警告快速定位
CTRL+SHIFT+F7  高亮显示多个关键字.

 

 

其他快捷方式
CIRL+U   大小写切换
CTRL+Z   倒退
CTRL+SHIFT+Z  向前
CTRL+ALT+F12  资源管理器打开文件夹
ALT+F1   查找文件所在目录位置
SHIFT+ALT+INSERT 竖编辑模式
CTRL+/   注释// 
CTRL+SHIFT+/  注释/*...*/
CTRL+W   选中代码,连续按会有其他效果
CTRL+B   快速打开光标处的类或方法
ALT+ ←/→  切换代码视图
CTRL+ALT ←/→  返回上次编辑的位置
ALT+ ↑/↓  在方法间快速移动定位
SHIFT+F6  重构-重命名
CTRL+H   显示类结构图
CTRL+Q   显示注释文档
ALT+1   快速打开或隐藏工程面板
CTRL+SHIFT+UP/DOWN 代码向上/下移动。
CTRL+UP/DOWN  光标跳转到第一行或最后一行下
ESC   光标返回编辑框
SHIFT+ESC  光标返回编辑框,关闭无用的窗口
F1   帮助 千万别按,很卡!
CTRL+F4   非常重要 下班都用

 

 

重要的设置

 

 

不编译某个MODULES的方法,但在视图上还是有显示
SETTINGS -> COMPILER -> EXCLUDES ->

 

不编译某个MODULES,并且不显示在视图上
MODULES SETTINGS -> (选择你的MODULE) -> SOURCES -> EXCLUDED -> 整个工程文件夹

 

 

IDEA编码设置3步曲
FILE -> SETTINGS -> FILE ENCODINGS -> IDE ENCODING
FILE -> SETTINGS -> FILE ENCODINGS -> DEFAULT ENCODING FOR PROPERTIES FILES
FILE -> SETTINGS -> COMPILER -> JAVA COMPILER -> ADDITIONAL COMMAND LINE PARAMETERS

加上参数 -ENCODING UTF-8 编译GROOVY文件的时候如果不加,STRING S = "中文"; 这样的GROOVY文件编译不过去.

 

 

编译中添加其他类型文件比如 *.TXT *.INI
FILE -> SETTINGS -> RESOURCE PATTERNS

 

 

改变编辑文本字体大小
FILE -> SETTINGS -> EDITOR COLORS & FONTS -> FONT -> SIZE

 

 

修改智能提示快捷键
FILE -> SETTINGS -> KEYMAP -> MAIN MENU -> CODE -> COMPLETE CODE -> BASIC

 

 

显示文件过滤
FILE -> SETTINGS -> FILE TYPES -> IGNORE FILES...
下边是我过滤的类型,区分大小写的
CVS;SCCS;RCS;rcs;.DS_Store;.svn;.pyc;.pyo;*.pyc;*.pyo;.git;*.hprof;_svn;.sbas;.IJI.*;vssver.scc;vssver2.scc;.*;*.iml;*.ipr;*.iws;*.ids

 

在PROJECT窗口中快速定位,编辑窗口中的文件
在编辑的所选文件按ALT+F1,然后选择PROJECT VIEW

标签: Idea Java

Linux下的批量Kill进程采用ps结合kill

ps -ef|grep Aug16|grep -v grep|cut -c 9-15|xargs kill -9

标签: Linux grep ps kill

linux cron的时间定义

/etc/crontab 文件中的行由 6 个字段组成,不同字段间用空格或 tab 键分隔。前 5 个字段指定命令要运行的时间

  分钟 (0-59)

  小时 (0-23)

  日期 (1-31)

  月份 (1-12)

  星期几(0-6,其中 0 代表星期日)

标签: Linux cron crontab

redhat enterprise 5.4 X64位Linux很卡--解决方法

刚装好的redhat enterprise 5.4 X64版本

症状:ssh终端连接速度慢,vi打开文件卡住,ls列目录需要很长的一段时间,整台服务器几乎无法操作。出现如下进程:

/bin/bash /usr/bin/run-parts /etc/cron.hourly

/bin/bash /etc/cron.hourly/mcelog.cron

awk -v progname=/etc/cron.hourly/mcelog.cron progname {?????    print progname ":\n"?????    progname="";????     

/bin/bash /etc/cron.hourly/mcelog.cron

awk -v progname=/etc/cron.hourly/mcelog.cron progname {?????    print progname ":\n"?????    progname="";????     

cat /sys/hypervisor/uuid

cat /sys/hypervisor/uuid

/bin/bash /etc/cron.hourly/mcelog.cron

awk -v progname=/etc/cron.hourly/mcelog.cron progname {?????    print progname ":\n"?????    progname="";????     

cat /sys/hypervisor/uuid

 

解决方法一:

关闭Linux的虚拟化xend

[root@localhost ~]# vi /boot/grub/grub.conf //进入引导文件

将default=0修改为1,如果只有一个引导选项的话,那就不需要做修改。看下一个方法。

 

解决方法二:

关闭/etc/updatedb.conf,打开updatedb.conf在首行加上DAILY_UPDATE=no

大致如下:

DAILY_UPDATE=no

PRUNEFS = "auto afs gfs gfs2 iso9660 sfs udf"

PRUNEPATHS="/afs /media /net /sfs /tmp /udev /var/spool/cups /var/spool/squid /var/tmp"

 

updatedb.Conf的作用:

      简单的说一下:服务器每天定时对硬盘上的文件进行索引,简单的说就是建立一个数据库,把所有文件目录信息存放到这个库里面,当使用whereis和locate命令搜索文件时,它直接到这个数据库中读取数据。而不是像find一样在硬盘上找文件。Whereis搜索一个文件几乎只要几秒钟就可以搞定,而find需要花费几分钟或者更长时间。updatedb.Conf使搜索的效率提高了很多倍。但是有缺点,它每天都需要索引更新,这会导致IO负载过高,因为不是时时更新,所以会出现搜索到已经删除的文件,搜不出新添加的文件,平时管理中我们很少用到。如果文件数量多而且更新平凡,我们大可把这个功能关闭。

标签: Linux CentOS5.4 CentOS5.5 ssh终端慢

output_buffering没打开将影响php的cookie

output_buffering没打开将影响php的cookie

应该 是

output_buffering=on

否则cookie太多后可能无效。

标签: PHP Linux cookie output_buffering

php mysql apache线程安全的问题

php-5.2.8
checking for MySQL UNIX socket location... no
configure: error: Cannot find libmysqlclient_r under /www/servers/mysql4118.
Note that the MySQL client library is not bundled anymore!
要求mysql也要加上 --enable-thread-safe-client.
解决方法一:重新编译安装MYSQL的时候加上 --enable-thread-safe-client.
原因:--enable-thread-safe-client    #Compile the client with threads. 如果没有这个参数,编译php的时候会报"Cannot find libmysqlclient_r under”之类的错误。
其实这跟PHP没有关系
那是因为我在编译APACHE的时候,使用--with-mpm模块,所以就必须在编译MYSQL的时候加上 --enable-thread-safe-client.
这是PHP5.2的一个改进,在PHP5.2.0之前的版本都不需要MYSQL启用安全线程

解决方法二:编译之前,先处理一下mysql的库,默认查找libmysqlclient_r.so,可是mysql默认为libmysqlclient.so,内容完全一样,做个链接即可
# cd /data/mysql/lib/mysql/
# ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so
照做。
再次重新编译安装PHP
顺利通过!

标签: PHP MySQL Apache worker

linux fdisk使用

(1) fdisk -l

查看磁盘列表

(2) fdisk /dev/hdc

分区

(3) mkfs.ext3 /dev/hdc1

格式化

(4) mount

mount /dev/hdc1 /usr/local/www/bak/

标签: mount fdisk mkfs.ext3

我的Samba配置文件内容

smb.conf

 #======================= Global Settings =====================================
[global]
dos charset = GB2312
unix charset = GB2312
display charset = GB2312
# ----------------------- Netwrok Related Options -------------------------
workgroup  = STHOME
server string = Steelhome Samba Server
 
netbios name = smbserver
hosts allow = 172.16.0.0/255.255.0.0
 
max connections = 20
# --------------------------- Logging Options -----------------------------
log file = /var/log/samba/%m.log
max log size = 50
 
# ----------------------- Standalone Server Options ------------------------
security = user
#security = share
#encrypt passwords = Yes
#smb passwd file = /etc/samba/smbpasswd
passdb backend = tdbsam
# --------------------------- Filesystem Options ---------------------------
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
template shell = /bin/false
winbind use default domain = no

#============================ Share Definitions ==============================
#[resource]
#comment = local resource
#path = /usr/local/www
#read only = no        
#public = yes

[steel]
    comment = steel
    path = /usr/local/www
    valid users = llh,lyl,wqj,zxm,yrr
    public = no
    writable = yes
    printable = no
    create mask = 0775
    directory mask = 0775
    browseable = no

 

添加新用户:

(1)建立系统用户,如llh

(2)添加到Samba帐号:pdbedit –a llh

标签: Samba pdbedit smb.conf tdbsam

Samba配置文件常用参数详解

Samba配置文件常用参数详解
 
Samba的主配置文件叫smb.conf,默认在/etc/samba/目录下。
smb.conf含有多个段,每个段由段名开始,直到下个段名。每个段名放在方括号中间。每段的参数的格式是:名称=指。配置文件中一行一个段名和参数,段名和参数名不分大小写。
除了[global]段外,所有的段都可以看作是一个共享资源。段名是该共享资源的名字,段里的参数是该共享资源的属性。
Samba安装好后,使用testparm命令可以测试smb.conf配置是否正确。使用testparm –v命令可以详细的列出smb.conf支持的配置参数。
 
全局参数:
==================Global Settings ===================
[global]
 
config file = /usr/local/samba/lib/smb.conf.%m
说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。如果文件 不存在,则该项无效。这个参数很有用,可以使得samba配置更灵活,可以让一台samba服务器模拟多台不同配置的服务器。比如,你想让PC1(主机名)这台电脑在访问Samba Server时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。这样当PC1请求连接Samba Server时,smb.conf.%m就被替换成smb.conf.pc1。这样,对于PC1来说,它所使用的Samba服务就是由smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。
 
workgroup = WORKGROUP
说明:设定 Samba Server 所要加入的工作组或者域。
 
server string = Samba Server Version %v
说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
 
netbios name = smbserver
说明:设置Samba Server的NetBIOS名称。如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。
 
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
说明:设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。
 
hosts allow = 127. 192.168.1. 192.168.10.1
说明:表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反。
例如:hosts allow=172.17.2.EXCEPT172.17.2.50
表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
hosts allow=M1,M2
表示容许来自M1和M2两台计算机连接
hosts allow=@xq
表示容许来自XQ网域的所有计算机连接
 
max connections = 0
说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。
 
deadtime = 0
说明:deadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接。
 
time server = yes/no
说明:time server用来设置让nmdb成为windows客户端的时间服务器。
 
log file = /var/log/samba/log.%m
说明:设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。
 
max log size = 50
说明:设置Samba Server日志文件的最大容量,单位为kB,0代表不限制。
 
security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。
1. share用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
4. domain:域安全级别,使用主域控制器(PDC)来完成认证。
 
passdb backend = tdbsam
说明:passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。
1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实
用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
2.tdbsam该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库可以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。pdbedit命令的参数很多,我们列出几个主要的。
pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表的详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户的账号。
pdbedit –c “[]” –u username:恢复该Samba用户的账号。
3.ldapsam该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”
 
encrypt passwords = yes/no
说明:是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。
 
smb passwd file = /etc/samba/smbpasswd
说明:用来定义samba用户的密码文件。smbpasswd文件如果没有那就要手工新建。
 
username map = /etc/samba/smbusers
说明:用来定义用户名映射,比如可以将root换成administrator、admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。
 
guest account = nobody
说明:用来设置guest用户名。
 
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
说明:用来设置服务器和客户端之间会话的Socket选项,可以优化传输速度。
 
domain master = yes/no
说明:设置Samba服务器是否要成为网域主浏览器,网域主浏览器可以管理跨子网域的浏览服务。
 
local master = yes/no
说明:local master用来指定Samba Server是否试图成为本地网域主浏览器。如果设为no,则永远不会成为本地网域主浏览器。但是即使设置为yes,也不等于该Samba Server就能成为主浏览器,还需要参加选举。
 
preferred master = yes/no
说明:设置Samba Server一开机就强迫进行主浏览器选举,可以提高Samba Server成为本地网域主浏览器的机会。如果该参数指定为yes时,最好把domain master也指定为yes。使用该参数时要注意:如果在本Samba Server所在的子网有其他的机器(不论是windows NT还是其他Samba Server)也指定为首要主浏览器时,那么这些机器将会因为争夺主浏览器而在网络上大发广播,影响网络性能。
如果同一个区域内有多台Samba Server,将上面三个参数设定在一台即可。
 
os level = 200
说明:设置samba服务器的os level。该参数决定Samba Server是否有机会成为本地网域的主浏览器。os level从0到255,winNT的os level是32,win95/98的os level是1。Windows 2000的os level是64。如果设置为0,则意味着Samba Server将失去浏览选择。如果想让Samba Server成为PDC,那么将它的os level值设大些。
 
domain logons = yes/no
说明:设置Samba Server是否要做为本地域控制器。主域控制器和备份域控制器都需要开启此项。
 
logon . = %u.bat
说明:当使用者用windows客户端登陆,那么Samba将提供一个登陆档。如果设置成%u.bat,那么就要为每个用户提供一个登陆档。如果人比较多,那就比较麻烦。可以设置成一个具体的文件名,比如start.bat,那么用户登陆后都会去执行start.bat,而不用为每个用户设定一个登陆档了。这个文件要放置在[netlogon]的path设置的目录路径下。
 
wins support = yes/no
说明:设置samba服务器是否提供wins服务。
 
wins server = wins服务器IP地址
说明:设置Samba Server是否使用别的wins服务器提供wins服务。
 
wins proxy = yes/no
说明:设置Samba Server是否开启wins代理服务。
 
dns proxy = yes/no
说明:设置Samba Server是否开启dns代理服务。
 
load printers = yes/no
说明:设置是否在启动Samba时就共享打印机。
 
printcap name = cups
说明:设置共享打印机的配置文件。
 
printing = cups
说明:设置Samba共享打印机的类型。现在支持的打印系统有:bsd, sysv, plp, lprng, aix, hpux, qnx
 
共享参数:
================== Share Definitions ==================
[共享名]
 
comment = 任意字符串
说明:comment是对该共享的描述,可以是任意字符串。
 
path = 共享目录路径
说明:path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes]共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m 。
 
browseable = yes/no
说明:browseable用来指定该共享是否可以浏览。
 
writable = yes/no
说明:writable用来指定该共享路径是否可写。
 
available = yes/no
说明:available用来指定该共享资源是否可用。
 
admin users = 该共享的管理者
说明:admin users用来指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。
例如:admin users =bobyuan,jane(多个用户中间用逗号隔开)。
 
valid users = 允许访问该共享的用户
说明:valid users用来指定允许访问该共享资源的用户。
例如:valid users = bobyuan,@bob,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)
 
invalid users = 禁止访问该共享的用户
说明:invalid users用来指定不允许访问该共享资源的用户。
例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)
 
write list = 允许写入该共享的用户
说明:write list用来指定可以在该共享下写入文件的用户。
例如:write list = bobyuan,@bob
 
public = yes/no
说明:public用来指定该共享是否允许guest账户访问。
 
guest ok = yes/no
说明:意义同“public”。
 
几个特殊共享:
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
; valid users = MYDOMAIN\%S
 
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
 
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
writable = no
share modes = no
 
[Profiles]
path = /var/lib/samba/profiles
browseable = no
guest ok = yes

标签: Samba 详解 配置

linux中如何让当前运行的进程进入后台运行

对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行:

$ ./test.sh
[1]+  Stopped                 ./test.sh

$ bg %1
[1]+ ./test.sh &

$ jobs -l
[1]+ 22794 Running                 ./test.sh &
 

标签: Linux bg jobs

linux快速删除目录

ls|xargs rm -f

标签: clientmqueue rm

Centos5 简易操作手册/route/vi/split

route add –host 172.16.210.72 gw 172.16.200.1

route add -net 172.16.210.0/24 gw 172.16.200.1

vi替换: :%s/vivian/sky/g

文件分割:split -b 600m 4307data-0429.tar.gz 4307data-0429_

文件合并:cat 4307data-0429_* > 4307data-0429.tar.gz

标签: centos vi 操作手册 route split

Solaris 简易操作手册(vi/tar/gzip)

查看进程:ps -ef

vi:先运行bash ,然后用vi (插入:按i再输字母)

tar.gz 解压:先 gzip -d *.tar.gz,得到一个*.tar文件,再用tar xvf *.tar

标签: Solaris ps vi 操作手册 gzip tar

nginx 限制ip并发数和限制速度

nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量

1.添加limit_zone
这个变量只能在http使用
vi /usr/local/nginx/conf/nginx.conf
limit_zone one $remote_addr 10m;

 

2.添加limit_conn
这个变量可以在http, server, location使用
我只限制一个站点,所以添加到server里面
vi /usr/local/nginx/conf/host/gaojinbo.com.conf
limit_conn   one 10;

 3.重启nginx
killall -HUP nginx

 

 

 

nginx 限速模块

参考:
关于limit_zone:http://wiki.nginx.org/NginxHttpLimitZoneModule
关于limit_rate和limit_conn:http://wiki.nginx.org/NginxHttpCoreModule

nginx可以通过HTTPLimitZoneModule和HTTPCoreModule两个组件来对目录进行限速。

http {
  limit_zone   one  $binary_remote_addr  10m; 
  server {
    location /download/ {
      limit_conn   one  1;
      limit_rate 300k;
    }
  }
}

limit_zone,是针对每个IP定义一个存储session状态的容器。这个示例中定义了一个10m的容器,按照32bytes/session,可以处理320000个session。

limit_conn one 1;
限制每个IP只能发起一个并发连接。

limit_rate 300k;
对每个连接限速300k. 注意,这里是对连接限速,而不是对IP限速。如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2。

标签: Nginx ip数 limit limit_zone 限制 限速

/proc/sys/net/ipv4/下各项的意义

/proc/sys/net/ipv4/下各项的意义

/proc/sys/net/ipv4/icmp_timeexceed_rate
这个在traceroute时导致著名的“Solaris middle star”。这个文件控制发送ICMP Time Exceeded消息的比率。
/proc/sys/net/ipv4/igmp_max_memberships
主机上最多有多少个igmp (多播)套接字进行监听。
/proc/sys/net/ipv4/inet_peer_gc_maxtime
求助: Add a little explanation about the inet peer storage? Minimum interval between garbage collection passes. This interval is in effect under low (or absent) memory pressure on the pool. Measured in jiffies.
/proc/sys/net/ipv4/inet_peer_gc_mintime
每一遍碎片收集之间的最小时间间隔。当内存压力比较大的时候,调整这个间隔很有效。以jiffies计。
/proc/sys/net/ipv4/inet_peer_maxttl
entries的最大生存期。在pool没有内存压力的情况下(比如,pool中entries的数量很少的时候),未使用的entries经过一段时间就会过期。以jiffies计。
/proc/sys/net/ipv4/inet_peer_minttl
entries的最小生存期。应该不小于汇聚端分片的生存期。当pool的大小不大于inet_peer_threshold时,这个最小生存期必须予以保证。以jiffies计。
/proc/sys/net/ipv4/inet_peer_threshold
The approximate size of the INET peer storage. Starting from this threshold entries will be thrown aggressively. This threshold also determines entries' time-to-live and time intervals between garbage collection passes. More entries, less time-to-live, less GC interval.
/proc/sys/net/ipv4/ip_autoconfig
这个文件里面写着一个数字,表示主机是否通过RARP、BOOTP、DHCP或者其它机制取得其IP配置。否则就是0。
/proc/sys/net/ipv4/ip_default_ttl
数据包的生存期。设置为64是安全的。如果你的网络规模巨大就提高这个值。不要因为好玩而这么做——那样会产生有害的路由环路。实际上,在很多情况下你要考虑能否减小这个值。
/proc/sys/net/ipv4/ip_dynaddr/proc/sys/net/ipv4/icmp_destunreach_rate
如果你有一个动态地址的自动拨号接口,就得设置它。当你的自动拨号接口激活的时候,本地所有没有收到答复的TCP套接字会重新绑定到正确的地址上。这可以解决引发拨号的套接字本身无法工作,重试一次却可以的问题。
/proc/sys/net/ipv4/ip_forward
内核是否转发数据包。缺省禁止。
/proc/sys/net/ipv4/ip_local_port_range
用于向外连接的端口范围。缺省情况下其实很小:1024到4999。
/proc/sys/net/ipv4/ip_no_pmtu_disc
如果你想禁止“沿途MTU发现”就设置它。“沿途MTU发现”是一种技术,可以在传输路径上检测出最大可能的MTU值。参见Cookbook一章中关于“沿途MTU发现”的内容。
/proc/sys/net/ipv4/ipfrag_high_thresh
用于IP分片汇聚的最大内存用量。分配了这么多字节的内存后,一旦用尽,分片处理程序就会丢弃分片。When ipfrag_high_thresh bytes of memory is allocated for this purpose, the fragment handler will toss packets until ipfrag_low_thresh is reached.
/proc/sys/net/ipv4/ip_nonlocal_bind
如果你希望你的应用程序能够绑定到不属于本地网卡的地址上时,设置这个选项。如果你的机器没有专线连接(甚至是动态连接)时非常有用,即使你的连接断开,你的服务也可以启动并绑定在一个指定的地址上。
/proc/sys/net/ipv4/ipfrag_low_thresh
用于IP分片汇聚的最小内存用量。
/proc/sys/net/ipv4/ipfrag_time
IP分片在内存中的保留时间(秒数)。
/proc/sys/net/ipv4/tcp_abort_on_overflow
一个布尔类型的标志,控制着当有很多的连接请求时内核的行为。启用的话,如果服务超载,内核将主动地发送RST包。
/proc/sys/net/ipv4/tcp_fin_timeout
如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60秒。2.2内核的通常值是180秒,你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB服务器,也有因为大量的死套接字而内存溢出的风险,FIN-WAIT-2的危险性比FIN-WAIT-1要小,因为它最多只能吃掉1.5K内存,但是它们的生存期长些。参见tcp_max_orphans。
/proc/sys/net/ipv4/tcp_keepalive_time
当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。
/proc/sys/net/ipv4/tcp_keepalive_intvl
当探测没有确认时,重新发送探测的频度。缺省是75秒。
/proc/sys/net/ipv4/tcp_keepalive_probes
在认定连接失效之前,发送多少个TCP的keepalive探测包。缺省值是9。这个值乘以tcp_keepalive_intvl之后决定了,一个连接发送了keepalive之后可以有多少时间没有回应。
/proc/sys/net/ipv4/tcp_max_orphans
系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS攻击,你绝对不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。This limit exists only to prevent simple DoS attacks, you _must_ not rely on this or lower the limit artificially, but rather increase it (probably, after increasing installed memory), if network conditions require more than default value, and tune network services to linger and kill such states more aggressively. 让我再次提醒你:每个孤儿套接字最多能够吃掉你64K不可交换的内存。
/proc/sys/net/ipv4/tcp_orphan_retries
本端试图关闭TCP连接之前重试多少次。缺省值是7,相当于50秒~16分钟(取决于RTO)。如果你的机器是一个重载的WEB服务器,你应该考虑减低这个值,因为这样的套接字会消耗很多重要的资源。参见tcp_max_orphans。
/proc/sys/net/ipv4/tcp_max_syn_backlog
记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128。如果服务器不堪重负,试试提高这个值。注意!如果你设置这个值大于1024,最好同时调整include/net/tcp.h中的TCP_SYNQ_HSIZE,以保证TCP_SYNQ_HSIZE*16 ≤tcp_max_syn_backlo,然后重新编译内核。
/proc/sys/net/ipv4/tcp_max_tw_buckets
系统同时保持timewait套接字的最大数量。如果超过这个数字,time-wait套接字将立刻被清除并打印警告信息。这个限制仅仅是为了防止简单的DoS攻击,你绝对不能过分依靠它或者人为地减小这个值,如果网络实际需要大于缺省值,更应该增加这个值(如果增加了内存之后)。
/proc/sys/net/ipv4/tcp_retrans_collapse
为兼容某些糟糕的打印机设置的“将错就错”选项。再次发送时,把数据包增大一些,来避免某些TCP协议栈的BUG。
/proc/sys/net/ipv4/tcp_retries1
在认定出错并向网络层提交错误报告之前,重试多少次。缺省设置为RFC规定的最小值:3,相当于3秒~8分钟(取决于RIO)。
/proc/sys/net/ipv4/tcp_retries2
在杀死一个活动的TCP连接之前重试多少次。RFC 1122规定这个限制应该长于100秒。这个值太小了。缺省值是15,相当于13~30分钟(取决于RIO)。
/proc/sys/net/ipv4/tcp_rfc1337
这个开关可以启动对于在RFC1337中描述的“tcp的time-wait暗杀危机”问题的修复。启用后,内核将丢弃那些发往time-wait状态TCP套接字的RST包。却省为0。
/proc/sys/net/ipv4/tcp_sack
特别针对丢失的数据包使用选择性ACK,这样有助于快速恢复。
/proc/sys/net/ipv4/tcp_stdurg
使用TCP紧急指针的主机需求解释。因为绝大多数主机采用BSD解释,所以如果你在Linux上打开它,可能会影响它与其它机器的正常通讯。缺省是FALSE。
/proc/sys/net/ipv4/tcp_syn_retries
在内核放弃建立连接之前发送SYN包的数量。
/proc/sys/net/ipv4/tcp_synack_retries
为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。
/proc/sys/net/ipv4/tcp_timestamps
时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。
/proc/sys/net/ipv4/tcp_tw_recycle
能够更快地回收TIME-WAIT套接字。缺省值是1。除非有技术专家的建议和要求,否则不应修改。
/proc/sys/net/ipv4/tcp_window_scaling
一般来说TCP/IP允许窗口尺寸达到65535字节。对于速度确实很高的网络而言这个值可能还是太小。这个选项允许设置上G字节的窗口大小,有利于在带宽*延迟很大的环境中使用。
一旦内核认为它无法发包,就会丢弃这个包,并向发包的主机发送ICMP通知。
/proc/sys/net/ipv4/icmp_echo_ignore_all
根本不要响应echo包。请不要设置为缺省,它可能在你正被利用成为DoS攻击的跳板时可能有用。
/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts [Useful]
如果你ping子网的子网地址,所有的机器都应该予以回应。这可能成为非常好用的拒绝服务攻击工具。设置为1来忽略这些子网广播消息。
/proc/sys/net/ipv4/icmp_echoreply_rate
设置了向任意主机回应echo请求的比率。
/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
设置它之后,可以忽略由网络中的那些声称回应地址是广播地址的主机生成的ICMP错误。
/proc/sys/net/ipv4/icmp_paramprob_rate
一个相对不很明确的ICMP消息,用来回应IP头或TCP头损坏的异常数据包。你可以通过这个文件控制消息的发送比率。

 

标签: Linux ipv4

linux和windows下TIME_WAIT过多的解决办法

如果使用了nginx代理,那么系统TIME_WAIT的数量会变得比较多,这是由于nginx代理使用了短链接的方式和后端交互的原因,使得nginx 和后端的ESTABLISHED变得很少而TIME_WAIT很多。这不但发生在安装nginx的代理服务器上,而且也会使后端的app服务器上有大量的 TIME_WAIT。查阅TIME_WAIT资料,发现这个状态很多也没什么大问题,但可能因为它占用了系统过多的端口,导致后续的请求无法获取端口而造 成障碍。

虽然TIME_WAIT会造成一些问题,但是要完全枪毙掉它也是不正当的,虽然看起来这么做没什么错。具体可看这篇文档:

http://hi.baidu.com/tim_bi/blog/item/35b005d784ca91d5a044df1d.html

所以目前看来最好的办法是让每个TIME_WAIT早点过期。

在linux上可以这么配置:

#让TIME_WAIT状态可以重用,这样即使TIME_WAIT占满了所有端口,也不会拒绝新的请求造成障碍
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
#让TIME_WAIT尽快回收,我也不知是多久,观察大概是一秒钟
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle

很多文档都会建议两个参数都配置上,但是我发现只用修改tcp_tw_recycle就可以解决问题的了,TIME_WAIT重用TCP协议本身就是不建议打开的。

不能重用端口可能会造成系统的某些服务无法启动,比如要重启一个系统监控的软件,它用了40000端口,而这个端口在软件重启过程中刚好被使用了,就可能会重启失败的。linux默认考虑到了这个问题,有这么个设定:

#查看系统本地可用端口极限值
cat /proc/sys/net/ipv4/ip_local_port_range

用这条命令会返回两个数字,默认是:32768 61000,说明这台机器本地能向外连接61000-32768=28232个连接,注意是本地向外连接,不是这台机器的所有连接,不会影响这台机器的 80端口的对外连接数。但这个数字会影响到代理服务器(nginx)对app服务器的最大连接数,因为nginx对app是用的异步传输,所以这个环节的 连接速度很快,所以堆积的连接就很少。假如nginx对app服务器之间的带宽出了问题或是app服务器有问题,那么可能使连接堆积起来,这时可以通过设 定nginx的代理超时时间,来使连接尽快释放掉,一般来说极少能用到28232个连接。

因为有软件使用了40000端口监听,常常出错的话,可以通过设定ip_local_port_range的最小值来解决:

echo "40001 61000" > /proc/sys/net/ipv4/ip_local_port_range

但是这么做很显然把系统可用端口数减少了,这时可以把ip_local_port_range的最大值往上调,但是好习惯是使用不超过32768的端口来侦听服务,另外也不必要去修改ip_local_port_range数值成1024 65535之类的,意义不大。

因为使用了nginx代理,在windows下也会造成大量TIME_WAIT,当然windows也可以调整:

在注册表(regedit)的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters上添加一个DWORD类型的值TcpTimedWaitDelay,值就是秒数,即可。

windows默认是重用TIME_WAIT,我现在还不知道怎么改成不重用的,本地端口也没查到是什么值,但这些都关系不大,都可以按系统默认运作。
 


可以看看这篇文档:

http://morganchengmo.spaces.live.com/blog/cns!9950CE918939932E!1721.entry

标签: Linux Nginx TIME_WAIT

Nginx访问二级目录后/(反斜杠)无法访问问题的解决办法

在nginx.conf中添加以下代码

 

location / {
                 if (-d $request_filename){
                        rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
                }
        }

标签: Rewrite Nginx nginx.conf 反斜杠

Apache访问失败 client denied by server configuration

需要修改httpd.conf

<Directory />
    Options FollowSymLinks
#    AllowOverride None
    AllowOverride All
    Order deny,allow
#    Deny from all
Allow from all
</Directory>

标签: Apache conf denied httpd.conf

Centos5.4 Apche & PHP & GD & Memcached 安装步骤

tar zxvf zlib-1.2.4.tar.gz
cd zlib-1.2.4
./configure
make
make install

#tar zxvf libpng-1.4.1.tar.gz (1.4.1有问题,gd不认)
#tar zxvf libpng-1.2.39.tar.gz
cd libpng-1.2.39
mv scripts/makefile.linux makefile
make
make install


tar zxvf freetype-2.3.9.tar.gz
cd freetype-2.3.9
./configure
make
make install


tar zxvf jpegsrc.v8a.tar.gz
cd jpeg-8a
./configure --enable-shared
make
make test
make install

tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install

tar -zxvf curl-7.20.0.tar.gz
cd curl-7.20.0
./configure
make
make install

tar -zxvf libiconv-1.13.tar.gz
cd libiconv-1.13
./configure
make; make install

#系统自带
#tar -jxvf libxml2-2.6.30.tar.gz
#cd libxml2-2.6.30
#./configure
#make
#make install


tar zxvf gd-2.0.34.tar.gz
cd gd-2.0.34
./configure --with-png --with-freetype --with-jpeg --with-zlib
#./configure --with-png --with-freetype --with-jpeg --with-zlib --enable-m4_pattern_allow
make install


./configure --prefix=/usr/local/mysql5077 --enable-thread-safe-client
make
make install
bin/mysql_install_db --user=mysql


./configure --prefix=/usr/local/webapp/apache81 --enable-modules=all --enable-so --enable-rewrite --enable-vhost-alias --enable-cgi
./configure --prefix=/usr/local/webapp/apache82work --enable-modules=all --enable-so --enable-rewrite --enable-vhost-alias --enable-cgi --with-mpm=worker
make
make install

#./configure --prefix=/usr/local/webapp/php85 --with-apxs2=/usr/local/webapp/apache85/bin/apxs --with-mysql=/usr/local/webapp/mysql5077-4307/ --with-libxml-dir=/usr/local/webapp/gd/xml2/ --with-gd=/usr/local/webapp/gd/gd/ --with-jpeg-dir=/usr/local/webapp/gd/jpeg6/ --with-zlib --with-png-dir=/usr/local/webapp/gd/png/ --with-freetype-dir=/usr/local/webapp/gd/freetype/ --with-curl=/usr/local/webapp/gd/curl/ --with-mcrypt=/usr/local/webapp/gd/libmcrypt/ --enable-ftp --with-xml --with-iconv --with-gettext --with-gdbm --with-ttf --enable-magic-quotes --enable-shmop --enable-sysvshm --enable-sysvsem --enable-sysvmsg && make && make install
#./configure --prefix=/usr/local/webapp/php81 --with-apxs2=/usr/local/webapp/apache81/bin/apxs --with-mysql=/usr/local/mysql5077/ --with-libxml-dir --with-gd --with-jpeg-dir --with-zlib --with-png-dir --with-freetype-dir --with-curl --with-mcrypt --enable-ftp --with-xml --with-iconv --with-iconv-dir=/usr/local --with-gettext --with-gdbm --with-ttf --enable-magic-quotes --enable-shmop --enable-sysvshm --enable-sysvsem --enable-sysvmsg
#去除 --with-xml
#./configure --prefix=/usr/local/webapp/php81 --with-apxs2=/usr/local/webapp/apache81/bin/apxs --with-mysql=/usr/local/mysql5077/ --with-libxml-dir --with-gd --with-jpeg-dir --with-zlib --with-png-dir --with-freetype-dir --with-curl --with-mcrypt --enable-ftp --with-iconv --with-iconv-dir=/usr/local --with-gettext --with-gdbm --with-ttf --enable-magic-quotes --enable-shmop --enable-sysvshm --enable-sysvsem --enable-sysvmsg

./configure --prefix=/usr/local/webapp/php81 --with-apxs2=/usr/local/webapp/apache81/bin/apxs --with-mysql=/usr/local/mysql5077/ --with-libxml-dir --with-gd --with-jpeg-dir --with-zlib --with-png-dir --with-freetype-dir --with-curl --with-mcrypt --enable-ftp --with-xml --with-iconv=/usr/local --with-gettext --with-gdbm --with-ttf --enable-magic-quotes --enable-shmop --enable-sysvshm --enable-sysvsem --enable-sysvmsg
./configure --prefix=/usr/local/webapp/php82 --with-apxs2=/usr/local/webapp/apache82work/bin/apxs --with-mysql=/usr/local/mysql5077/ --with-libxml-dir --with-gd --with-jpeg-dir --with-zlib --with-png-dir --with-freetype-dir --with-curl --with-mcrypt --enable-ftp --with-xml --with-iconv=/usr/local --with-gettext --with-gdbm --with-ttf --enable-magic-quotes --enable-shmop --enable-sysvshm --enable-sysvsem --enable-sysvmsg

make
make install

 

安装完成PHP后安装memcached

PHP & memcached
http://www.nioxiao.com/php-memcached

libevent-1.4.13-stable.tar.gz
./configure --prefix=/usr
make
make install

memcached-1.4.4.tar.gz
./configure --prefix=/usr/local/memcached --with-libevent=/usr
make
make install

(ln -s /usr/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2)
/usr/local/memcached/bin/memcached -d -m 1024 -u root -l 172.16.200.243 -p 1080 -c 1024 -P /tmp/memcached.pid
kill `cat /tmp/memcached.pid`

wget http://pecl.php.net/get/memcache-2.2.4.tgz
tar -zxvf memcached-2.2.4.tgz
cd memcached-2.2.4
phpize && ./configure --enable-memcache --with-php-config=/usr/local/webapp/php81/bin/php-config
make
make install (可手工复制)
cp modules/memcache.so /usr/lib/php/modules/

# Note: packaged extension modules are now loaded via the .ini files
# found in the directory /etc/php.d
touch /etc/php.d/memcached.ini
echo 'extension=memcache.so' > /etc/php.d/memcached.ini
(注:建立并修改php的相关目录。并复制到对应的目录 extension_dir = "/usr/local/webapp/php81/lib/php/extensions/")

 pcre-6.6-2.el5_1.7.x86_64.rpm
pcre-devel-6.6-2.el5_1.7.x86_64.rpm

nginx-0.8.34.tar.gz
./configure
#./configure --with-cc-opt="-I /usr/include/pcre"
make
make install

标签: PHP Apache prefork worker 线程 GD Memcached Nginx

配置NFS服务Step By Step

 1、NFS包
  NFS需要5个RPM,分别是:
  setup-* : 共享NFS目录在/etc/exports中定义
  initscripts-* : 包括引导过程中装载网络目录的基本脚本
  nfs-utils-* : 包括基本的NFS命令与监控程序
  portmap-* : 支持安全NFS RPC服务的连接
  quota-* : 网络上共享的目录配额,包括rpc.rquotad (这个包不是必须的)

  2、基本监控程序
  要顺利运行NFS,至少需要五个Linux服务,它们各有不同的功能,有的负责装载服务,有的保证远程命令指向正确的位置。这些服务通过/etc/rc.d/init.d目录中的nfs,nfslock和portmap脚本启动。下面简单介绍每个监控程序:

  (1) 基本NFS
  rpc.nfsd是NFS服务器监控程序,它通过/etc/rc.d/init.d目录中的nfs脚本启动。NFS监控程序还启动rpc.mountd装载监控程序,并导出共享目录。

  (2) RPC装载
  可以用mount命令连接本地目录或网络目录,但还需要一个装载NFS目录的特殊监控程序rpc.mountd

  (3) 端口映射器
  portmap监控程序只是定向RPC通信数据流,但它对于NFS服务很重要。如果不运行portmap,则NFS客户机无法找到从NFS服务器共享的目录。

  (4) 重新启动与statd
  当NFS服务需要中断或者重新启动时,rpc.statd监控程序和rpc.lockd在服务器重新启动之后使客户机恢复NFS连接。

  (5) 锁定
  通过共享NFS目录打开文件时,锁定可以使用户不能覆盖同一个文件。锁定通过nfslock脚本并使用rpc.lockd监控程序启动运行。

  3、配置NFS
  共享的NFS目录在/etc/exports中列出,这个文件控制对目录的共享。书写规则是:(每个共享规则一行)
  共享目录 主机(参数)

  例如:
  /mnt/cdrom *.abc.com(ro,sync) master.abc.com(rw,sync)

  上面的规则代表将/mnt/cdrom目录以只读同步方式共享给*.abc.com域,并且以读写同步方式共享给master.abc.com主机。
  任何共享目录都要指定sync或async,也就是指定文件写入磁盘之前共享NFS目录是否响应命令。

  下面是一些NFS共享的常用参数:
  ro 只读访问
  rw 读写访问
  sync 所有数据在请求时写入共享
  async NFS在写入数据前可以相应请求
  secure NFS通过1024以下的安全TCP/IP端口发送
  insecure NFS通过1024以上的端口发送
  wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
  no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
  hide 在NFS共享目录中不共享其子目录
  no_hide 共享NFS目录的子目录
  subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
  no_subtree_check 和上面相对,不检查父目录权限
  all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
  no_all_squash 保留共享文件的UID和GID(默认)
  root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
  no_root_squas root用户具有根目录的完全管理访问权限
  anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
  anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID

  4、启动NFS
  # service portmap start
  # service nfs start
  检查NFS的运行级别:
  # chkconfig --list portmap
  # chkconfig --list nfs
  根据需要设置在相应的运行级别自动启动NFS:
  # chkconfig --level 235 portmap on
  # chkconfig --level 235 nfs on

  另外,还需要查看系统的iptables、/etc/hosts.allow、/etc/hosts.deny是否设置了正确的NFS访问规则。

  客户端的配置:
  # mount -t nfs 172.16.200.209:/bak/news_data /usr/local/www/news_data
  # vi /etc/fstab
  *//追加以下到最后一行//*
       192.168.0.2:/home  /home nfs defaults 1 2
 

标签: exports nfs mount portmap

1 2