全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1994
推到 Plurk!
推到 Facebook!

FREEBSD升級及優化全攻略

 
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-16 19:24:42 IP:61.221.xxx.xxx 未訂閱
http://bbs.chinaunix.net/forum/5/20040109/240536.html FREEBSD升級及優化全攻略  ──文 重慶.樊禮(夢飛)     歡迎轉載﹐本文遵循GNU協定規則﹗     前言 2  升級源碼樹 3  安裝cvsup 3  升級系統源碼樹及ports 3  重新編譯內核 3  優化編譯環境 3  升級作業系統 3  升級配置文件 4  重新編譯內核 4  重新妍呇曭A器 5  優化FREEBSD 5  檢查升級情況 5  打開防火牆 5  優化內核參數 5  安裝防火牆 6  安裝資料庫MYSQL 7  安裝mysql40-server和mysql40-client 7  安裝phpmyadmin 8  安裝FTP伺服器 9  安裝ftp軟體(使用pure-ftpd/) 9  安裝pureftpd_php_manager 10  安裝APACHE伺服器 11  安裝apache13-modssl 11  安裝PHP語言 12  安裝php 12  安裝ZendOptimizer 12  安裝APACHE其他整合軟體 13  安裝mod_bandwidth 13  安裝mod_fastcgi 14  安裝mod_gzip 14  安裝mod_limitipconn 15  安裝mod_perl 15  安裝mod_throttle 16  安裝mod_watch 16  安裝APACHE第三方軟體 17  安裝限制每個虛擬主機的並發數軟體 17  安裝防止ddos攻擊的軟體 18  其他需要安裝的軟體﹔ 18  安裝MRTG 19  安裝net-snmp 19  安裝mrtg 19  設置虛擬空間的mrtg和流量分析 19  安裝BIND 9 20  安裝bind9 20  安裝郵件伺服器 21  安裝qmail郵件系統 21  安裝WEBMIN和USERMIN 21  安裝webmin 21  安裝usermin 22  結束語 22     前言     FREEBSD系統是一種非常 UNIX、非常 Free、非常 BSD -- UNIX 的作業系統,因d它過UNIX化,太過專業化了,教很多新手無從下手學習。我也是從幾年前開始學習FREEBSD,並且在王波寫的<FREEBSD使用大全>指導下,正式使用FREEBSD的。在這段使用和管理過程中,自己也積累了不少文章和實戰經驗。d了讓更多的朋友喜歡上FREEBSD,喜歡上UNIX,我特地做了幾次升級和優化實例,結合自己管理伺服器空間的經驗寫出此文,希望在此噶j引玉。  本文的目的是使新手可以根據此文章的步驟和方法,架設一台專業,高效,安全的FREEBSD出來,並且可以立即投入實際運用,故文章中對運用及命令的使用多於理論化的知識點的描述,如果您不明白命令有何作用,建議您查查相關資料。  本文假設已經架設好或者新安裝了一台FREEBSD系統主機。  本文中引用了很多FREEBSD官方站資料及網上資料,還有更多的是自己在實際工作中的經驗,當然,裏面的參數並不一定完全適合您,所以請您在使用時,盡可能根據您的實際需要調整一些參數,使您的SERVER的性能完全的發揮出來。本文只是一個總的線索,如果我要拆開來一個一個詳細解釋,我想會花更多的篇幅來寫的,因d我忙著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     重新妍呇曭A器  到此d止,伺服器作業系統及內核升級成功  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     其他規則根據實際情況來做,如果您想系統每次妍妘ㄗ洏峇W一次的規則,可以把這些內容加到:  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的如下部份d:  NoAnonymous yes  MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf     再修改/usr/local/etc/pureftpd-mysql.conf的如下部份d您的設定值:  # 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細節d:  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 修改下面兩處d: 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 您可以根據需要,改變15d1023,來提升加速的等級。 安裝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(微秒),建議d:1000000 (1秒) * BandWidth 可以針對特定來源的物件控制流,rate以位元組d單位,但當rated0時,d不限制流速。 例子: BandWidth ecp.fr 0 BandWidth 138.195 0 BandWidth all 1024 * LargeFileLimit 當傳送一個大於等於filesize KB大小的檔時,設定一個最大流速(位元組/秒),當rate d0的時候,不限速。 例子: LargeFileLimit 200 3072 LargeFileLimit 1024 2048 以上例子設定小於200KB的檔將不會被限制流速,大小在200K到1024K之間的檔將會被 限速3072 B/s,大於1024KB的文件將會被限速2048 B/s. * MinBandWidth 設定每個連接傳送資料的基本帶寬佔用,以Byted單位。預設值:256 B/s。 當rate設定d0時,使用默認帶寬限制。 安裝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 被限制d 100 個並發線程數。 server2 被限制d 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: >: <>> # >:
系統時間:2024-05-06 19:04:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!