Andy's Blog » » [21andy.com原创]FreeBSD服务器优化设置方案

[21andy.com原创]FreeBSD服务器优化设置方案

FreeBSD的Apache2.2x优化
作者: Andy
网站: http://www.21andy.com
转载请注明本文出处 http://www.21andy.com/new/20071118/668.html

使用FreeBSD时间也有几个月了,从头开始自学的,确实不太好学啊,搜索引擎都快被我搜烂了
前2天上了台美国服务器,把设置方案分享出来,也作为备忘
先看看硬件和运行情况
P43.2 + 1G + 160G

服务器处理器 CPU CPU个数: 2 Intel(R) Pentium(R) 4 CPU 3.20GHz
服务器操作系统 FreeBSD 内核版本: 6.2-RELEASE
主机名称 localhost
服务器解译引擎 Apache
Web服务端口 80

内存使用状况 物理内存:共 1007.4 M, 已使用 1007.4 M, 空闲 0 M, 使用率 100 %
SWAP区:共 2006.82 M, 已使用 0 M, 空闲 2006.82 M, 使用率 0 %
系统平均负载 0.27 0.32 0.24

总结: 其实服务器只要运行稳定,负载不高,很多时候,默认设置已经可以了,也没什么事,反倒更需要优化的是程序.可以等到有问题的时候,再去解决问题.

Apache优化设置

分享我的httpd.conf
因为占地方,所以把日志一直是禁用的,呵呵

ServerRoot "/usr/local"
Listen 80

LoadModule authn_file_module libexec/apache22/mod_authn_file.so
#LoadModule authn_dbm_module libexec/apache22/mod_authn_dbm.so
#LoadModule authn_anon_module libexec/apache22/mod_authn_anon.so
#LoadModule authn_default_module libexec/apache22/mod_authn_default.so
#LoadModule authn_alias_module libexec/apache22/mod_authn_alias.so
LoadModule authz_host_module libexec/apache22/mod_authz_host.so
#LoadModule authz_groupfile_module libexec/apache22/mod_authz_groupfile.so
LoadModule authz_user_module libexec/apache22/mod_authz_user.so
#LoadModule authz_dbm_module libexec/apache22/mod_authz_dbm.so
LoadModule authz_owner_module libexec/apache22/mod_authz_owner.so
LoadModule authz_default_module libexec/apache22/mod_authz_default.so
LoadModule auth_basic_module libexec/apache22/mod_auth_basic.so
#LoadModule auth_digest_module libexec/apache22/mod_auth_digest.so
LoadModule file_cache_module libexec/apache22/mod_file_cache.so
LoadModule cache_module libexec/apache22/mod_cache.so
LoadModule disk_cache_module libexec/apache22/mod_disk_cache.so
LoadModule mem_cache_module libexec/apache22/mod_mem_cache.so
#LoadModule dumpio_module libexec/apache22/mod_dumpio.so
#LoadModule include_module libexec/apache22/mod_include.so
LoadModule filter_module libexec/apache22/mod_filter.so
LoadModule charset_lite_module libexec/apache22/mod_charset_lite.so
LoadModule deflate_module libexec/apache22/mod_deflate.so
LoadModule log_config_module libexec/apache22/mod_log_config.so
LoadModule logio_module libexec/apache22/mod_logio.so
LoadModule env_module libexec/apache22/mod_env.so
LoadModule mime_magic_module libexec/apache22/mod_mime_magic.so
LoadModule cern_meta_module libexec/apache22/mod_cern_meta.so
LoadModule expires_module libexec/apache22/mod_expires.so
LoadModule headers_module libexec/apache22/mod_headers.so
#LoadModule usertrack_module libexec/apache22/mod_usertrack.so
LoadModule unique_id_module libexec/apache22/mod_unique_id.so
LoadModule setenvif_module libexec/apache22/mod_setenvif.so
#LoadModule version_module libexec/apache22/mod_version.so
LoadModule ssl_module libexec/apache22/mod_ssl.so
LoadModule mime_module libexec/apache22/mod_mime.so
#LoadModule dav_module libexec/apache22/mod_dav.so
#LoadModule status_module libexec/apache22/mod_status.so
#LoadModule autoindex_module libexec/apache22/mod_autoindex.so
#LoadModule asis_module libexec/apache22/mod_asis.so
#LoadModule info_module libexec/apache22/mod_info.so
#LoadModule cgi_module libexec/apache22/mod_cgi.so
#LoadModule dav_fs_module libexec/apache22/mod_dav_fs.so
LoadModule vhost_alias_module libexec/apache22/mod_vhost_alias.so
#LoadModule negotiation_module libexec/apache22/mod_negotiation.so
LoadModule dir_module libexec/apache22/mod_dir.so
#LoadModule imagemap_module libexec/apache22/mod_imagemap.so
LoadModule actions_module libexec/apache22/mod_actions.so
#LoadModule speling_module libexec/apache22/mod_speling.so
LoadModule userdir_module libexec/apache22/mod_userdir.so
LoadModule alias_module libexec/apache22/mod_alias.so
LoadModule rewrite_module libexec/apache22/mod_rewrite.so
LoadModule php5_module libexec/apache22/libphp5.so

#AddDefaultCharset GBK
ServerTokens Prod
ServerSignature Off
HostNameLookups Off

<ifmodule !mpm_netware_module>
    User www
    Group www
</ifmodule>

ServerName localhost
ServerAdmin [email protected]
DocumentRoot "/www"

<directory />
    AllowOverride None
    Order deny,allow
    Deny from all

<directory "/www">
    Options FollowSymLinks
    AllowOverride all
    Order allow,deny
    Allow from all

</directory>

<ifmodule dir_module>
    DirectoryIndex index.html index.htm index.php
</ifmodule>

<filesmatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</filesmatch>

# log setting
# ErrorLog /var/log/httpd-error.log

#LogLevel warn

#<filesmatch "\.(ico|png|gif|jpg|bmp|swf|js|css)">
#    SetEnv IMAGES 1
#</filesmatch>
#<ifmodule log_config_module>
#    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
#    LogFormat "%h %l %u %t \"%r\" %>s %b" common
#    </ifmodule><ifmodule logio_module>
#      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
#    </ifmodule>
#    #ErrorLog "|/usr/local/sbin/cronolog   /usr/log/error_%Y%m%d.log"
#    #CustomLog "|/usr/local/sbin/cronolog  /var/log/httpd/access_log.%Y%m%d" combined  env=!IMAGES
#

<ifmodule alias_module>
    ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"
</ifmodule>

<directory "/usr/local/www/apache22/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</directory>

DefaultType text/plain

<ifmodule mime_module>
    TypesConfig etc/apache22/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</ifmodule>

<ifmodule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</ifmodule>

Alias /dbadmin "/usr/local/www/phpMyAdmin/"
<directory "/usr/local/www/phpMyAdmin/">
     authtype basic
     authname "require login"
     authuserfile /etc/passwords
     require user andy
     Options None
     AllowOverride None
     Order allow,deny
     Allow from all
</directory>

Alias /mrtg "/home/mrtg"
<directory "/home/mrtg/">
     authtype basic
     authname "require login"
     authuserfile /etc/passwords
     require user andy
     Options None
     AllowOverride None
     Order allow,deny
     Allow from all
</directory>

<ifmodule mod_deflate.c>
     DeflateCompressionLevel 9
     AddOutputFilterByType   DEFLATE text/html text/plain text/xml application/x-httpd-php
     AddOutputFilter         DEFLATE  html  htm  xml  php  css  js
</ifmodule>

Include etc/apache22/extra/httpd-mpm.conf
Include etc/apache22/extra/httpd-vhosts.conf

httpd-mpm.conf 优化设置
我的apache运行在prefork下,不建议运行于worker

<ifmodule !mpm_netware_module>
    PidFile "/var/run/httpd.pid"
</ifmodule>

<ifmodule !mpm_winnt_module>
</ifmodule>

<ifmodule !mpm_netware_module>
LockFile "/var/log/accept.lock"
</ifmodule>

#默认设置
#<ifmodule mpm_prefork_module>
#    StartServers          5
#    MinSpareServers       5
#    MaxSpareServers      10
#    MaxClients          150
#    MaxRequestsPerChild   0
#</ifmodule>

#我的
<ifmodule mpm_prefork_module>
    StartServers 10
    MinSpareServers 10
    MaxSpareServers 15
    ServerLimit 2000
    MaxClients 1500
    MaxRequestsPerChild 3000
</ifmodule>

httpd-vhosts.conf 优化设置
严格一点,拒绝使用*:80
为服务器的每个IP添加一个 NameVirtualHost 这样才可以用多个VirtualHost指向一个IP

NameVirtualHost xxx.xxx.xxx.1:80
NameVirtualHost xxx.xxx.xxx.2:80
<virtualhost xxx.xxx.xxx.1:80>
    DocumentRoot "/www/21andy.com"
    ServerName 21andy.com
    ServerAlias www.21andy.com
</virtualhost>

MySQL的优化设置
/etc/my.cnf
用的my-large.cnf稍做修改

[client]
port            = 3306
socket          = /tmp/mysql.sock

[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer = 256M
max_allowed_packet = 1M
table_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

skip-networking
skip-innodb
skip-bdb
skip-name-resolve

#log-bin=mysql-bin
server-id       = 1
#tmpdir         = /tmp/
#log-update     = /path-to-dedicated-directory/hostname

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
#safe-updates

[isamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

Incoming search terms:

Tags: 优化, freebsd

本文地址: http://blog.21andy.com/20071118/668.html