?
php的缓冲器:
有eaccelerator, apc, phpa,xcache,这个这个就不说了吧,搜索一堆一堆的,自己看啦,知道有这玩意就OK
MYSQL缓存:
这也算非代码级的,经典的数据库就是用的这种方式,看下面的运行时间,0.09xxx之类的
我贴段根据蓝色那家伙修改后部分my.ini吧,2G的MYISAM表可以在0.05S左右,据说他前后改了有快一年
[client]
……
default-character-set=gbk
default-storage-engine=MYISAM
max_connections=600
max_connect_errors=500
back_log=200
interactive_timeout=7200
query_cache_size=64M
……
table_cache=512
……
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=128M
key_buffer_size=1024M
read_buffer_size=512M
……
thread_concurrency=8
[Ctrl+A 全部选择 然后拷贝]
基于反向代理的Web缓存:
如Nginx,SQUID,mod_proxy(apache2以上又分为mod_proxy和mod_cache)
NGINX的例子
<nginx.conf> #user ?nobody; worker_processes ?4; error_log ?logs/error.log crit; pid ? ? ? ?logs/nginx.pid; worker_rlimit_nofile 10240; events { ? ? use epoll; ? ? worker_connections ?51200; } http { ? ? include ? ? ? mime.types; ? ? default_type ?application/octet-stream; ? ? sendfile ? ?on; ? ? keepalive_timeout 65; ? ? tcp_nodelay on; ? ? # server pool ? ? upstream bspfrontsvr { ? ? ? ? ? ? server 10.10.10.224:80 ? weight=1; ? ? ? ? ? ? server 10.10.10.221:80 ? weight=1; ? ? } ? ? ? ? upstream bspimgsvr { ? ? ? ? ? ? server 10.10.10.201:80 ? weight=1; ? ? } ? ? ? ? upstream bspstylesvr { ? ? ? ? ? ? server 10.10.10.202:80 ? weight=1; ? ? } ? ? ? ? upstream bsphelpsvr { ? ? ? ? ? ? server 10.10.10.204:80 ? weight=1; ? ? } ? ? ? ? upstream bspwsisvr { ? ? ? ? ? ? server 10.10.10.203:80 ? weight=1; ? ? } ? ? ? ? upstream bspadminsvr { ? ? ? ? ? ? server 10.10.10.222:80 ? weight=1; ? ? } ? ? ? ? upstream bspbuyersvr { ? ? ? ? ? ? server 10.10.10.223:80 ? weight=1; ? ? } ? ? ? ? upstream bspsellersvr { ? ? ? ? ? ? server 10.10.10.225:80 ? weight=1; ? ? } ? ? upstream ?bsploginsvr ?{ ? ? ? ? ? ? server 10.10.10.220:443 ?weight=1; ? ? } ? ? upstream ?bspregistersvr ?{ ? ? ? ? ? ? server 10.10.10.220:80 ?weight=1; ? ? } ? ? log_format ?test_com ?'$remote_addr - $remote_user [$time_local] "$request" ' ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'$status $body_bytes_sent "$http_referer" "$http_user_agent" '; ? ? #-------------------------------------------------------------------- ? ? #img.test.com ? ? server { ? ? ? ? listen ? ? ? 10.10.10.230:80; ? ? ? ? server_name ?img.test.com; ? ? ? ? location / { ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? ? ?http://bspimgsvr; ? ? ? ? ? ? ? ? ? ? ? ? include ? ? ? ? proxy_setting.conf; ? ? ? ? } ? ? ? ? access_log ?logs/img.log ?test_com; ? ? } ? ? ? ? #style.test.com ? ? server { ? ? ? ? listen ? ? ? 10.10.10.230:80; ? ? ? ? server_name ?style.test.com; ? ? ? ? location / { ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? ? ?http://bspstylesvr; ? ? ? ? ? ? ? ? ? ? ? ? include ? ? ? ? proxy_setting.conf; ? ? ? ? } ? ? ? ? access_log ?logs/style.log ?test_com; ? ? } ? ? ? ? ? ? #help.test.com ? ? server { ? ? ? ? listen ? ? ? 10.10.10.230:80; ? ? ? ? server_name ?help.test.com; ? ? ? ? location / { ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? ? ?http://bsphelpsvr; ? ? ? ? ? ? ? ? ? ? ? ? include ? ? ? ? proxy_setting.conf; ? ? ? ? } ? ? ? ? access_log ?logs/help.log ?test_com; ? ? } ? ? ? ? ? ? #admin.test.com ? ? server { ? ? ? ? listen ? ? ? 10.10.10.230:80; ? ? ? ? server_name ?admin.test.com; ? ? ? ? location / { ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? ? ?http://bspadminsvr; ? ? ? ? ? ? ? ? ? ? ? ? include ? ? ? ? proxy_setting.conf; ? ? ? ? } ? ? ? ? access_log ?logs/admin.log ?test_com; ? ? } ? ? ? ? #buyer.test.com ? ? server { ? ? ? ? listen ? ? ? 10.10.10.230:80; ? ? ? ? server_name ?buyer.test.com; ? ? ? ? location / { ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? ? ?http://bspbuyersvr; ? ? ? ? ? ? ? ? ? ? ? ? include ? ? ? ? proxy_setting.conf; ? ? ? ? } ? ? ? ? access_log ?logs/buyer.log ?test_com; ? ? } ? ? ? ? #seller.test.com ? ? server { ? ? ? ? listen ? ? ? 10.10.10.230:80; ? ? ? ? server_name ?seller.test.com; ? ? ? ? location / { ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? ? ?http://bspsellersvr; ? ? ? ? ? ? ? ? ? ? ? ? include ? ? ? ? proxy_setting.conf; ? ? ? ? } ? ? ? ? access_log ?logs/seller.log ?test_com; ? ? } ? ? #wsi.test.com ? ? server { ? ? ? ? listen ? ? ? 10.10.10.230:80; ? ? ? ? server_name ?wsi.test.com; ? ? ? ? location / { ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? ? ?http://bspwsisvr; ? ? ? ? ? ? ? ? ? ? ? ? include ? ? ? ? proxy_setting.conf; ? ? ? ? } ? ? ? ? access_log ?logs/wsi.log ?test_com; ? ? } ? ? #www.test.com ? ? server { ? ? ? ? listen ? ? ? 10.10.10.230:80; ? ? ? ? server_name ?www.test.com ? *.test.com; ? ? ? ? location ~ ^/NginxStatus/ { ? ? ? ? ? ? stub_status on; ? ? ? ? ? ? access_log off; ? ? ? ? } ? ? ? ? location / { ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? ? ?http://bspfrontsvr; ? ? ? ? ? ? ? ? ? ? ? ? include ? ? ? ? proxy_setting.conf; ? ? ? ? } ? ? ? ? access_log ?logs/www.log ?test_com; ? ? ? ? error_page ? 500 502 503 504 ?/50x.html; ? ? ? ? location = /50x.html { ? ? ? ? ? ? root ? html; ? ? ? ? } ? ? } ? ? ? #login.test.com ? ? server { ? ? ? ? listen ? ? ? 10.10.10.230:443; ? ? ? ? server_name ?login.test.com; ? ? ? ? ssl ? ? ? ? ? ? ? ? ?on; ? ? ? ? ssl_certificate ? ? ?cert.pem; ? ? ? ? ssl_certificate_key ?cert.key; ? ? ? ? ssl_session_timeout ?5m; ? ? ? ? ssl_protocols ?SSLv2 SSLv3 TLSv1; ? ? ? ? ssl_ciphers ?ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ? ? ? ? ssl_prefer_server_ciphers ? on; ? ? ? ? location / { ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? ? ? ?https://bsploginsvr; ? ? ? ? ? ? ? ? ? ? ? ? include ? ? ? ? proxy_setting.conf; ? ? ? ? } ? ? ? ? access_log ?logs/login.log ?test_com; ? ? } ? ? #login.test.com for register ? ? server { ? ? ? ? listen ? ? ? 10.10.10.230:80; ? ? ? ? server_name ?login.test.com; ? ? ? ? location / { ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? ? ? ?http://bspregistersvr; ? ? ? ? ? ? ? ? ? ? ? ? include ? ? ? ? proxy_setting.conf; ? ? ? ? } ?? ? ? ? ? access_log ?logs/register.log ?test_com; ? ? } ? ? ? } <conf/proxy_setting.conf> ? ? ? ? ? ? ? ? ? ? ? ? proxy_redirect ? ? ? ? ?off; ? ? ? ? ? ? ? ? ? ? ? ? proxy_set_header ? ? ? ?Host $host; ? ? ? ? ? ? ? ? ? ? ? ? proxy_set_header ? ? ? ?X-Real-IP $remote_addr; ? ? ? ? ? ? ? ? ? ? ? ? proxy_set_header ? ? ? ?X-Forwarded-For $proxy_add_x_forwarded_for; ? ? ? ? ? ? ? ? ? ? ? ? client_max_body_size ? ?10m; ? ? ? ? ? ? ? ? ? ? ? ? client_body_buffer_size 128k; ? ? ? ? ? ? ? ? ? ? ? ? proxy_connect_timeout ? 90; ? ? ? ? ? ? ? ? ? ? ? ? proxy_send_timeout ? ? ?90; ? ? ? ? ? ? ? ? ? ? ? ? proxy_read_timeout ? ? ?90; ? ? ? ? ? ? ? ? ? ? ? ? proxy_buffer_size ? ? ? 4k; ? ? ? ? ? ? ? ? ? ? ? ? proxy_buffers ? ? ? ? ? 4 32k; ? ? ? ? ? ? ? ? ? ? ? ? proxy_busy_buffers_size 64k; ? ? ? ? ? ? ? ? ? ? ? ? proxy_temp_file_write_size 64k;
[Ctrl+A 全部选择 然后拷贝]
mod_proxy的例子:
<VirtualHost *>
ServerName www.zxsv.com
ServerAdmin admin@zxsv.com
# reverse proxy setting
ProxyPass / http://www.zxsv.com:8080/
ProxyPassReverse / http://www.zxsv.com:8080/
# cache dir root
CacheRoot "/var/www/proxy"
# max cache storage
CacheSize 50000000
# hour: every 4 hour?
CacheGcInterval 4
# max page expire time: hour
CacheMaxExpire 240
# Expire time = (now - last_modified) * CacheLastModifiedFactor?
CacheLastModifiedFactor 0.1
# defalt expire tag: hour
CacheDefaultExpire 1
# force complete after precent of content retrived: 60-90%
CacheForceCompletion 80
CustomLog /usr/local/apache/logs/dev_access_log combined
</VirtualHost>
而SQUID的例子我就不说明了,这方面网上有写的太多,大家自己搜索一下
DNS轮询:
BIND是一款开放源码的DNS服务器软件,这个要说起来就大了,自己搜索去,大家知道有这个东西就行了。
我知道的有chinacache等大站就是这样做的,说简单点就是多服务器啦,把同一个页面或文件缓存到不同的服务器上,按南北自动解析到相关的服务器中。