<? php
$memcache = new Memcache;
$memcache -> connect( ' localhost ' , 11211 ) or die ( " Could not connect " );
$version = $memcache -> getVersion();
echo " Server's version: " . $version . " \n " ;
$tmp_object = new stdClass;
$tmp_object -> str_attr = ' test ' ;
$tmp_object -> int_attr = 123 ;
$memcache -> set( ' key ' , $tmp_object , false , 10 ) or die ( " Failed to save data at the server " );
echo " Store data in the cache (data will expire in 10 seconds)\n " ;
$get_result = $memcache -> get( ' key ' );
echo " Data from the cache:\n " ;
var_dump ( $get_result );
?>
<? php
$sql = ' SELECT * FROM users ' ;
$key = md5 ( $sql ); // memcached 對象標識符
if ( ! ( $datas = $mc -> get( $key )) ) {
// 在 memcached 中未獲取到緩存數據,則使用數據庫查詢獲取記錄集。
echo " n " . str_pad ( ' Read datas from MySQL. ' , 60 , ' _ ' ) . " n " ;
$conn = mysql_connect ( ' localhost ' , ' test ' , ' test ' );
mysql_select_db ( ' test ' );
$result = mysql_query ( $sql );
while ( $row = mysql_fetch_object ( $result ))
$datas [] = $row ;
// 將數據庫中獲取到的結果集數據保存到 memcached 中,以供下次訪問時使用。
$mc -> add( $key , $datas );
} else {
echo " n " . str_pad ( ' Read datas from memcached. ' , 60 , ' _ ' ) . " n " ;
}
var_dump ( $datas );
?>
[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
< 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;
< VirtualHost *>
ServerName www . zxsv . com
ServerAdmin admin@zxsv . com
# reverse proxy setting
ProxyPass / http : // www.zxsv.com:8080/
ProxyPa***everse / 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 >