FREEBSD升级和优化全攻略

FREEBSD系统是一种非常 UNIX、非常 Free、非常 BSD -- UNIX 的操作系统,因为它过UNIX化,太过专业化了,教很多新手无从下手学习。我也是从几年前开始学习FREEBSD,并且在王波写的<FREEBSD使用大全>指导下,正式使用FREEBSD的。在这段使用和管理过程中,自己也积累了不少文章和实战经验。为了让更多的朋友喜欢上FREEBSD,喜欢上UNIX,我特地做了几次升级和优化实例,结合自己管理服务器空间的经验写出此文,希望在此抛砖引玉。 本文的目的是使新手可以根据此文章的步骤和方法,架设一台专业,高效,安全的FREEBSD出来,并且可以立即投入实际运用,故文章中对运用及命令的使用多于理论化的知识点的描述,如果您不明白命令有何作用,建议您查查相关资料。 本文假设已经架设好或者新安装了一台FREEBSD系统主机。 本文中引用了很多FREEBSD官方站数据及网上数据,还有更多的是自己在实际工作中的经验,当然,里面的参数并不一定完全适合您,所以请您在使用时,尽可能根据您的实际需要调整一些参数,使您的SERVER的性能完全的发挥出来。本文只是一个总的线索,如果我要拆开来一个一个详细解释,我想会花更多的篇幅来写的,因为我忙着04年1月的自考,只写了实际中的运作情况,请各位朋友见谅。 升级源码树 安装cvsup 进入:/usr/ports/net/cvsup make clean make deinstall make install make clean 即可 升级系统源码树及ports 更新/usr/share/examples/cvsup目录下stand-cvsup和ports-cvsup文件,并执行cvsup –g –L2 standard-supfile和cvsup –g –L2 ports-cvsup两个文件,升级ports树﹔ 重新编译内核 优化编译环境 更新/etc/make.conf文件,做适当的编译优化,我的CPU是Intel的: CPUTYPE=i686 CFLAGS= -O3 -pipe COPTFLAGS= -O3 -pipe 升级操作系统 进入/usr/src 执行make world 整个过程很久,需要2小时左右。 升级配置文件 执行mergemaster升级配置文件,在此过程中,需要按i以便系统执行升级﹔ 重新编译内核 到/sys/i386/conf里面,cp GENERIC onlinecq,再vi onlinecq优化内核,注意加入下面的内容 #disable ctrl+alt+delete options SC_DISABLE_REBOOT #quota limit options QUOTA #ipfw support options IPFIREWALL options DUMMYNET options HZ=3000 options IPDIVERT options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=100 options IPSTEALTH options TCP_DROP_SYNFIN options IPFIREWALL_DEFAULT_TO_ACCEPT options ICMP_BANDLIM options ACCEPT_FILTER_DATA options ACCEPT_FILTER_HTTP #ipfilter support #options IPFILTER #options IPFILTER_LOG #options IPFILTER_DEFAULT_BLOCK 再执行: /usr/sbin/config onlinecq cd ../../compile/onlinecq make depend make make install 重新启动服务器 到此为止,服务器操作系统及内核升级成功 reboot 优化FREEBSD 检查升级情况 使用ssh进入系统,使用uname –a 可以查到是否升级成功﹔ 打开防火墙 更新rc.conf里面的设置,加上: #enable_quotas="YES" #check_quotas="YES" firewall_enable="YES" firewall_script="/etc/rc.firewall" firewall_type="/etc/ipfw.rules" #create it! firewall_quiet="NO" firewall_logging_enable="YES" log_in_vain="NO" tcp_drop_synfin="NO" tcp_restrict_rst="YES" icmp_drop_redirect="YES" 优化内核参数 修改系统内核参数,实现微调:vi /etc/sysctl.conf kern.ipc.somaxconn=8192 kern.ipc.maxsockbuf=2097152 kern.maxfilesperproc=32768 kern.maxfiles=65536 kern.securelevel=-1 net.inet.tcp.sendspace=65536 net.inet.tcp.recvspace=32768 net.inet.udp.maxdgram=57344 net.inet.icmp.drop_redirect=1 net.inet.icmp.log_redirect=0 net.inet.ip.redirect=0 net.inet6.ip6.redirect=0 net.inet.icmp.icmplim=100 net.inet.tcp.always_keepalive=0 net.inet.tcp.delayed_ack=0 net.inet.tcp.log_in_vain=0 net.inet.udp.log_in_vain=0 net.inet.tcp.blackhole=2 net.inet.udp.blackhole=1 net.local.stream.sendspace=65535 net.local.stream.recvspace=32768 net.inet.ip.fastforwarding=1 vfs.vmiodirenable=1 安装防火墙 防火墙在上面已经编译入了内核,并且在上面的rc.conf里面已经打开了,所以在此只要设置一下即可! 允许所有IP通过,免得把自己给挡在外面了。 ipfw add all from any to any 其它规则根据实际情况来做,如果您想系统每次启动都使用上一次的规则,可以把这些内容加到: vi /etc/ipfw.rules 里面,语法规则同ipfw。 安装数据库MYSQL 安装mysql40-server和mysql40-client 进入/usr/ports/databases/mysql40-server 执行: make clean make deinstall make WITH_OPENSSL=yes WITH_LINUXTHREADS=yes BUILD_OPTIMIZED=yes install 或者使用下面可参考的编译参数:BUILD_STATIC=yes 编译成静态执行版本 make clean 更改mysql的root密码: mysqladmin –uroot –p password 123456 生成/etc/my.cnf,使用如下命令: vi /etc/my.cnf [client] #password = your_password port = 3306 socket = /tmp/mysql.sock [mysqld] skip-innodb skip-locking skip-networking set-variable = port=3306 set-variable = socket=/tmp/mysql.sock set-variable = back_log=50 set-variable = connect_timeout=3 set-variable = key_buffer=128M set-variable = max_connections=1000 set-variable = max_allowed_packet=1M set-variable = net_buffer_length=8K set-variable = wait_timeout=3 set-variable = read_buffer_size=1M set-variable = sort_buffer_size=1M set-variable = table_cache=256 set-variable = myisam_sort_buffer_size=32M set-variable = log_slow_queries=/var/log/log_slow_queries.log #log-bin server-id = 1 [mysqldump] quick set-variable = max_allowed_packet=16M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates [isamchk] set-variable = key_buffer=20M set-variable = sort_buffer=20M set-variable = read_buffer=2M set-variable = write_buffer=2M [myisamchk] set-variable = key_buffer=20M set-variable = sort_buffer=20M set-variable = read_buffer=2M set-variable = write_buffer=2M [mysqlhotcopy] interactive-timeout 安装phpmyadmin 注意,此步骤需要在apache和php之后再执行 进入/usr/ports/databases/phpmyadmin 执行: make clean make deinstall make install make clean 新建立一个system的数据库备用。 安装FTP服务器 安装ftp软件(使用pure-ftpd/) 进入/usr/ports/ftp/pufe-ftpd 执行: make clean make deinstall make WITH_MYSQL=1 install 或者使用下面可参考的编译参数:WITH_LANG=simplified-chinese 使用简体中文语言包 make clean 配置pure-ftpd,主要需要做以下的工作: cp /usr/local/etc/pure-ftpd.conf.sample /usr/local/etc/pure-ftpd.conf cp /usr/local/etc/pureftpd-mysql.conf.sample /usr/local/etc/pureftpd-mysql.conf 再修改/usr/local/etc/pure-ftpd.conf的如下部份为: NoAnonymous yes MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf 再修改/usr/local/etc/pureftpd-mysql.conf的如下部份为您的设定值: # Mandatory : user to bind the server as. MYSQLUser demo # Mandatory : user password. You must have a password. MYSQLPassword demo # Mandatory : database to open. MYSQLDatabase demo 再进入使用mysql –uroot –p123456 进入mysql的文本方式﹔ 使用如下命令建立新表: use system; DROP TABLE IF EXISTS users; CREATE TABLE users ( User varchar(16) NOT NULL default '', status enum('0','1') NOT NULL default '0', Password varchar(64) NOT NULL default '', Uid varchar(11) NOT NULL default '-1', Gid varchar(11) NOT NULL default '-1', Dir varchar(128) NOT NULL default '', ULBandwidth smallint(5) NOT NULL default '0', DLBandwidth smallint(5) NOT NULL default '0', comment tinytext NOT NULL, ipaccess varchar(15) NOT NULL default '*', QuotaSize smallint(5) NOT NULL default '0', QuotaFiles int(11) NOT NULL default 0, PRIMARY KEY (User), UNIQUE KEY User (User) ) TYPE=MyISAM; 安装pureftpd_php_manager 下载pureftpd_php_manager.zip 解压并放到指定的目录里面,比如: /usr/local/www/data chmod –R 755 /usr/local/www/data/pureftpd_php_manager 再加入一个普通用户和一个群组,以供ftp使用: pw groupadd ftpusers pw useradd ftpuser –g ftpusers –s /sbin/nologin 记住他们的uid和gid号,备用! 进入并编辑pureftp.config.php文件 更改里面的如下行: $PUREFTP_CONFIG_FILE = '/usr/local/etc/pureftpd-mysql.conf';^M $DefaultUser = "ftpuser"; # Default User Logon^M $DefaultPass = ""; # Default User Password^M $DefaultUid = "1002"; # Default User ID ( must be a re al user acct )^M $DefaultGid = "1001"; # Default Group ID ( must be a r eal group acct )^M $DefaultDir = "/home"; # Default User Dir ( use /./ at the end to chroot )^M $DefaultUL = "0"; # Default Upload Throttl e ( 0 disables it )^M $DefaultDL = "0"; # Default Download Throt tle ( 0 disables it )^M $Defaultip = "*"; # Default IP restriction s ( * = any IP )^M $DefaultQS = "200"; # Default Quota Size ( 0 disable s it )^M $Defaultcmt = ""; # Default Comment for us er^M ^M // UA^M $DefaultQF = "0"; # Default Quota Files ( 0 disabl 安装APACHE服务器 安装apache13-modssl 进入/usr/ports/www/apache13-modssl 执行: make clean make deinstall make WITH_APACHE_SUEXEC=yes APACHE_HARD_SERVER_LIMIT=1024 APACHE_PERF_TUNING=yes install 编译时带上suexec和优化。 Make clean 取消所有Options里面的Indexes,禁止浏览目录及文件。 设置KeepAlive Off 安装PHP语言 安装php 进入/usr/ports/www/mod_php4 执行: make clean make deinstall make install 编译常用的选项即可,一定记得选择上mysql和gd。 Make clean 安装完成后,在/usr/local/etc/apache/httpd.conf里面,加入如下内容: AddType application/x-httpd-php .php .php3 .php4 .phtml AddType application/x-httpd-php-source .phps 替换DirectoryIndex细节为: DirectoryIndex index.html index.htm index.wml index.cgi index.shtml index.jsp index.js index.jp index.php4 index.php3 index.php index.phtml default.htm default.html home.htm 再cp php.ini-recommended /etc/php.ini 以及修改php.ini里面的参数 vi /etc/php.ini 修改下面两处为: register_globals = On magic_quotes_gpc = On 安装ZendOptimizer 先下载ZendOptimizer-2.1.0b-FreeBSD4.0-i386.tar.gz 再执行 tar zxvf ZendOptimizer-2.1.0b-FreeBSD4.0-i386.tar.gz cd ZendOptimizer-2.1.0b-FreeBSD4.0-i386 sh setup 即可完成傻瓜式的安装。 注意:此时您的php.ini配置文件,一般会移到 /usr/loca/Zend/etc/php.ini 并且底部会增加以下几行: [Zend] zend_optimizer.optimization_level=15 zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2.1.0 zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2.1.0 zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so 您可以根据需要,改变15为1023,来提升加速的等级。 安装APACHE其它整合软件 安装mod_bandwidth 进入/usr/ports/www/mod_bandwidth 执行: make clean make deinstall make install 编译完成后,一定记得 vi /usr/local/etc/apache/httpd.conf LoadModule bandwidth_module libexec/apache/mod_bandwidth.so AddModule mod_bandwidth.c make clean 语法及作用: * BandWidthModule 该模块的开关,可以对每个Server进行配置 * BandWidthPulse 设定计时单位,MS(微秒),建议为:1000000 (1秒) * BandWidth 可以针对特定来源的对象控制流,rate以字节为单位,但当rate为0时,为不限制流速。 例子: BandWidth ecp.fr 0 BandWidth 138.195 0 BandWidth all 1024 * LargeFileLimit 当传送一个大于等于filesize KB大小的档时,设定一个最大流速(字节/秒),当rate 为0的时候,不限速。 例子: LargeFileLimit 200 3072 LargeFileLimit 1024 2048 以上例子设定小于200KB的档将不会被限制流速,大小在200K到1024K之间的档将会被 限速3072 B/s,大于1024KB的文件将会被限速2048 B/s. * MinBandWidth 设定每个连接传送数据的基本带宽占用,以Byte为单位。默认值:256 B/s。 当rate设定为0时,使用默认带宽限制。 安装mod_fastcgi 进入/usr/ports/www/mod_ fastcgi 执行: make clean make deinstall make install 编译完成后,一定记得 vi /usr/local/etc/apache/httpd.conf LoadModule fastcgi_module libexec/apache/mod_fastcgi.so AddModule mod_fastcgi.c AddHandler fastcgi-script fcgi fcgi fpl make clean 安装mod_gzip 进入/usr/ports/www/mod_gzip 执行: make clean make deinstall make install 编译完成后,一定记得 vi /usr/local/etc/apache/httpd.conf LoadModule gzip_module libexec/apache/mod_gzip.so AddModule mod_gzip.c make clean 安装mod_limitipconn 进入/usr/ports/www/mod_limitipconn 执行: make clean make deinstall make install 编译完成后,一定记得 vi /usr/local/etc/apache/httpd.conf LoadModule limitipconn_module libexec/apache/mod_limitipconn.so AddModule mod_limitipconn.c make clean 安装mod_perl 进入/usr/ports/www/mod_perl 执行: make clean make deinstall make install 编译完成后,一定记得 vi /usr/local/etc/apache/httpd.conf LoadModule perl_module libexec/apache/mod_perl.so AddModule mod_perl.c make clean 安装mod_throttle 进入/usr/ports/www/mod_throttle 执行: make clean make deinstall make install 编译完成后,一定记得 vi /usr/local/etc/apache/httpd.conf LoadModule throttle_module libexec/apache/mod_throttle.so AddModule mod_throttle.c make clean 安装mod_watch 进入/usr/ports/www/mod_watch 执行: make clean make deinstall make install 编译完成后,一定记得 vi /usr/local/etc/apache/httpd.conf LoadModule watch_module libexec/apache/mod_watch.so AddModule mod_watch.c make clean 安装APACHE第三方软件 安装限制每个虚拟主机的并发数软件 mod_vhost_limit 安装: apxs -c mod_vhost_limit.c -o /path/to/libexec/mod_vhost_limit.so 在 httpd.conf 加入: LoadModule vhost_limit_module libexec/mod_vhost_limit.so AddModule mod_vhost_limit.c 配置: MaxClients 150 ExtendedStatus On NameVirtualHost * ServerName server1 DocumentRoot /some/where/1 MaxVhostClients 100 ServerName server2 DocumentRoot /some/where/2 MaxVhostClients 30 ServerName server3 DocumentRoot /some/where/3 其中: server1 被限制为 100 个并发线程数。 server2 被限制为 30 个并发线程数。 server3 没有被限制。 注:需 mod_status 的 ExtendedStatus On 支持!! 如超出限制的并发数在客户端就会出现503错误: Service Temporarily Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. -------------------------------------------------------------------------------- Apache/1.3.27 Server at server1 Port 80 在 error_log 中将会有类似以下的错误提示: [Mon Jun 23 15:22:24 2003] [error] client access to server1 deferred, MaxVhostClients 100 exceeded 安装防止ddos攻击的软件 dosevasive1.8.tar.gz 安装方法: tar zxvf mod_dosevasive.tar.gz cd dosevasive/ /usr/local/apache/bin/apxs -i -c mod_dosevasive.c vi /usr/local/apache/conf/httpd.conf 加入 LoadModule dosevasive_module libexec/mod_dosevasive.so AddModule mod_dosevasive.c DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 其它需要安装的软件﹔ 可选择安装的有: CPU温度监控软件 CPU负载监控软件 封包流量监控软件 …… 安装MRTG 安装net-snmp 进入/usr/ports/net/net-snmp 执行: make clean make deinstall make install make clean 安装mrtg 进入/usr/ports/net/mrtg 执行: make clean make deinstall make install make clean 设置虚空间的mrtg和流量分析 生成流量控制檔: /usr/local/sbin/apache2mrtg.pl /usr/local/etc/apache/httpd.conf > /usr/local/etc/apache/mod_watch.cfg 修改此文件,并且加如下头部信息: WorkDir:/usr/local/www/data/mrtg Options[_]: growright,bits #Language: gb2312 #Title[^]: Traffic Analysis for PageTop[^]:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FREEBSD 升级优化全攻略<br>──文 重庆.樊礼(梦飞)<br>欢迎转载﹐本文遵循GNU 协议规则﹗<br>前言.....................................................................................................................................................2<br>升级源码树.........................................................................................................................................3<br>安装cvsup ..................................................................................................................................3<br>升级系统源码树及ports.............................................................................................................3<br>重新编译内核.....................................................................................................................................3<br>优化编译环境..............................................................................................................................3<br>升级操作系统..............................................................................................................................3<br>升级配置文件..............................................................................................................................4<br>重新编译内核..............................................................................................................................4<br>重新启动服务器..........................................................................................................................5<br>优化FREEBSD..................................................................................................................................5<br>检查升级情况..............................................................................................................................5<br>打开防火墙.................................................................................................................................5<br>优化内核参数..............................................................................................................................5<br>安装防火墙.........................................................................................................................................6<br>安装数据库MYSQL..........................................................................................................................7<br>安装mysql40-server 和mysql40-client......................................................................................7<br>安装phpmyadmin .......................................................................................................................8<br>安装FTP 服务器................................................................................................................................9<br>安装ftp 软件(使用pure-ftpd/)....................................................................................................9<br>安装pureftpd_php_manager .....................................................................................................10<br>安装APACHE 服务器...................................................................................................................... 11<br>安装apache13-modssl............................................................................................................... 11<br>安装PHP 语言.................................................................................................................................12<br>安装php....................................................................................................................................12<br>安装ZendOptimizer ..................................................................................................................12<br>安装APACHE 其它整合软件..........................................................................................................13<br>安装mod_bandwidth.................................................................................................................13<br>安装mod_fastcgi.......................................................................................................................14<br>安装mod_gzip...........................................................................................................................14<br>安装mod_limitipconn ...............................................................................................................15<br>安装mod_perl ...........................................................................................................................15<br>安装mod_throttle......................................................................................................................16<br>安装mod_watch........................................................................................................................<br>安装APACHE 第三方软件..............................................................................................................17<br>安装限制每个虚拟主机的并发数软件....................................................................................17<br>安装防止ddos 攻击的软件......................................................................................................18<br>其它需要安装的软件﹔............................................................................................................18<br>安装MRTG ......................................................................................................................................19<br>安装net-snmp...........................................................................................................................19<br>安装mrtg ..................................................................................................................................19<br>设置虚空间的mrtg 和流量分析..............................................................................................19<br>安装BIND 9.....................................................................................................................................20<br>安装bind9 ................................................................................................................................20<br>安装邮件服务器...............................................................................................................................21<br>安装qmail 邮件系统.................................................................................................................21<br>安装WEBMIN 和USERMIN..........................................................................................................21<br>安装webmin.............................................................................................................................21<br>安装usermin.............................................................................................................................22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值