锘??xml version="1.0" encoding="utf-8" standalone="yes"?>区久久AAA片69亚洲,亚洲mv国产精品mv日本mv,亚洲高清毛片一区二区http://www.tkk7.com/Skynet/---------- ---------- 鎴戠殑鏂?blog : liukaiyi.cublog.cn ---------- ----------zh-cnFri, 09 May 2025 22:21:20 GMTFri, 09 May 2025 22:21:20 GMT60Nginx 甯歌搴旂敤鎶鏈寚鍗梉Nginx Tips] 絎簩鐗?(杞?http://www.tkk7.com/Skynet/archive/2010/01/31/311426.html鍒樺嚡姣?/dc:creator>鍒樺嚡姣?/author>Sun, 31 Jan 2010 15:08:00 GMThttp://www.tkk7.com/Skynet/archive/2010/01/31/311426.htmlhttp://www.tkk7.com/Skynet/comments/311426.htmlhttp://www.tkk7.com/Skynet/archive/2010/01/31/311426.html#Feedback0http://www.tkk7.com/Skynet/comments/commentRss/311426.htmlhttp://www.tkk7.com/Skynet/services/trackbacks/311426.html

浣滆?NetSeek  http://www.linuxtone.org (IT榪愮淮涓撳緗憒闆嗙兢鏋舵瀯|鎬ц兘璋冧紭)
嬈㈣繋杞澆,杞澆鏃惰鍔″繀浠ヨ秴閾炬帴褰㈠紡鏍囨槑鏂囩珷鍘熷鍑哄鍜屼綔鑰呬俊鎭強鏈0鏄?
棣栧彂鏃墮棿: 2008-11-25     鏇存柊鏃墮棿:2009-1-14

鐩?褰?br /> 涓銆?nbsp;       Nginx 鍩虹鐭ヨ瘑
浜屻?nbsp;       Nginx 瀹夎鍙婅皟璇?/em>
涓夈?nbsp;       Nginx Rewrite
鍥涖?nbsp;       Nginx Redirect
浜斻?nbsp;       Nginx 鐩綍鑷姩鍔犳枩綰?
鍏?nbsp;       Nginx Location
涓冦?nbsp;       Nginx expires
鍏?nbsp;       Nginx 闃茬洍閾?/em>
涔濄?nbsp;       Nginx 璁塊棶鎺у埗
鍗併?nbsp;       Nginx鏃ュ織澶勭悊
鍗佷竴銆?nbsp;    Nginx Cache
鍗佷簩銆?nbsp;    Nginx璐熻澆鍧囪 
鍗佷笁銆?      Nginx綆鍗曚紭鍖?/em>      
鍗佸洓銆?nbsp;       濡備綍鏋勫緩楂樻ц兘鐨凩EMP鐜
鍗佷簲銆?nbsp;       Nginx鏈嶅姟鐩戞帶
鍗佸叚銆?nbsp;       甯歌闂涓庨敊璇鐞?
鍗佷竷銆?nbsp;       鐩稿叧璧勬簮涓嬭澆

銆愬墠璦銆戯細
緙栧啓姝ゆ妧鏈寚鍗楀湪浜庢帹騫挎櫘鍙奛GINX鍦ㄥ浗鍐呯殑浣跨敤錛屾洿鏂逛究鐨勫府鍔╁ぇ瀹朵簡瑙e拰鎺屾彙NGINX鐨勪竴浜涗嬌鐢ㄦ妧宸с傛湰鎸囧崡寰堝鎶宸ф潵鑷簬緗戠粶鍜屽伐浣滀腑鎴栫綉緇滀笂鏈嬪弸浠棶鎴戠殑闂.鍦ㄦ瀵圭綉緇滀笂鎰挎剰鍒嗕韓鐨勬湅鍙嬩滑琛ㄧず鎰熻阿鍜岃嚧鎰忥紒嬈㈣繋澶у鍜屾垜涓璧蜂赴瀵屾湰鎶鏈寚鍗楁彁鍑烘洿濂界殑寤鴻錛佽鏈嬪弸浠叧娉? http://www.linuxtone.org 鎶鏈垎浜ぞ鍖? 浜掓兂瀛︿範鍏卞悓榪涙!

涓銆?Nginx 鍩虹鐭ヨ瘑
1銆佺畝浠?br />    Nginx ("engine x") 鏄竴涓珮鎬ц兘鐨?HTTP 鍜?鍙嶅悜浠g悊 鏈嶅姟鍣紝涔熸槸涓涓?IMAP/POP3/SMTP 浠g悊鏈嶅姟鍣ㄣ?Nginx 鏄敱 Igor Sysoev 涓轟縿緗楁柉璁塊棶閲忕浜岀殑 Rambler.ru 绔欑偣寮鍙戠殑錛屽畠宸茬粡鍦ㄨ绔欑偣榪愯瓚呰繃涓ゅ勾鍗婁簡銆侷gor 灝嗘簮浠g爜浠ョ被BSD璁稿彲璇佺殑褰㈠紡鍙戝竷銆傚敖綆¤繕鏄祴璇曠増錛屼絾鏄紝Nginx 宸茬粡鍥犱負瀹冪殑紼沖畾鎬с佷赴瀵岀殑鍔熻兘闆嗐佺ず渚嬮厤緗枃浠跺拰浣庣郴緇熻祫婧愮殑娑堣楄岄椈鍚嶄簡銆?br /> 鏇村鐨勮瑙佸畼鏂箇iki: http://wiki.codemongers.com/

2銆?Nginx鐨勪紭鐐?br /> nginx鍋氫負HTTP鏈嶅姟鍣紝鏈変互涓嬪嚑欏瑰熀鏈壒鎬э細
1)        澶勭悊闈欐佹枃浠訛紝绱㈠紩鏂囦歡浠ュ強鑷姩绱㈠紩錛涙墦寮鏂囦歡鎻忚堪絎︾紦鍐詫紟
2)        鏃犵紦瀛樼殑鍙嶅悜浠g悊鍔犻燂紝綆鍗曠殑璐熻澆鍧囪 鍜屽閿欙紟
3)        FastCGI錛岀畝鍗曠殑璐熻澆鍧囪 鍜屽閿欙紟
4)        妯″潡鍖栫殑緇撴瀯銆傚寘鎷琯zipping, byte ranges, chunked responses, 浠ュ強 SSI-filter絳塮ilter銆傚鏋滅敱FastCGI鎴栧叾瀹冧唬鐞嗘湇鍔″櫒澶勭悊鍗曢〉涓瓨鍦ㄧ殑澶氫釜SSI錛屽垯榪欓」澶勭悊鍙互騫惰榪愯錛岃屼笉闇瑕佺浉浜掔瓑寰呫?/span>
5)        鏀寔SSL 鍜?TLS SNI錛?br />
Nginx涓撲負鎬ц兘浼樺寲鑰屽紑鍙戯紝鎬ц兘鏄叾鏈閲嶈鐨勮冮噺, 瀹炵幇涓婇潪甯告敞閲嶆晥鐜?銆傚畠鏀寔鍐呮牳Poll妯″瀷錛岃兘緇忓彈楂樿礋杞界殑鑰冮獙, 鏈夋姤鍛婅〃鏄庤兘鏀寔楂樿揪 50,000 涓茍鍙戣繛鎺ユ暟銆?br /> Nginx鍏鋒湁寰堥珮鐨勭ǔ瀹氭с傚叾瀹僅TTP鏈嶅姟鍣紝褰撻亣鍒拌闂殑宄板鹼紝鎴栬呮湁浜烘伓鎰忓彂璧鋒參閫熻繛鎺ユ椂錛屼篃寰堝彲鑳戒細瀵艱嚧鏈嶅姟鍣ㄧ墿鐞嗗唴瀛樿楀敖棰戠箒浜ゆ崲錛屽け鍘誨搷搴旓紝鍙兘閲嶅惎鏈嶅姟鍣ㄣ備緥濡傚綋鍓峚pache涓鏃︿笂鍒?00涓互涓婅繘紼嬶紝web鍝? 搴旈熷害灝辨槑鏄鵑潪甯哥紦鎱簡銆傝孨ginx閲囧彇浜嗗垎闃舵璧勬簮鍒嗛厤鎶鏈紝浣垮緱瀹冪殑CPU涓庡唴瀛樺崰鐢ㄧ巼闈炲父浣庛俷ginx瀹樻柟琛ㄧず淇濇寔10,000涓病鏈夋椿鍔ㄧ殑榪? 鎺ワ紝瀹冨彧鍗?.5M鍐呭瓨錛屾墍浠ョ被浼糄OS榪欐牱鐨勬敾鍑誨nginx鏉ヨ鍩烘湰涓婃槸姣棤鐢ㄥ鐨勩傚氨紼沖畾鎬ц岃█, nginx姣攍ighthttpd鏇磋儨涓絳廣?br /> Nginx鏀寔鐑儴緗層傚畠鐨勫惎鍔ㄧ壒鍒鏄? 騫朵笖鍑犱箮鍙互鍋氬埌7*24涓嶉棿鏂繍琛岋紝鍗充嬌榪愯鏁頒釜鏈堜篃涓嶉渶瑕侀噸鏂板惎鍔ㄣ備綘榪樿兘澶熷湪涓嶉棿鏂湇鍔$殑鎯呭喌涓嬶紝瀵硅蔣浠剁増鏈繘琛岃繘琛屽崌綰с?br /> Nginx閲囩敤master-slave妯″瀷, 鑳藉鍏呭垎鍒╃敤SMP鐨勪紭鍔匡紝涓旇兘澶熷噺灝戝伐浣滆繘紼嬪湪紓佺洏I/O鐨勯樆濉炲歡榪熴傚綋閲囩敤select()/poll()璋冪敤鏃訛紝榪樺彲浠ラ檺鍒舵瘡涓繘紼嬬殑榪炴帴鏁般?br /> Nginx 浠g爜璐ㄩ噺闈炲父楂橈紝浠g爜寰堣鑼冿紝 鎵嬫硶鎴愮啛錛?妯″潡鎵╁睍涔熷緢瀹規槗銆傜壒鍒煎緱涓鎻愮殑鏄己澶х殑Upstream涓嶧ilter閾俱? Upstream涓鴻濡俽everse proxy, 涓庡叾浠栨湇鍔″櫒閫氫俊妯″潡鐨勭紪鍐欏瀹氫簡寰堝ソ鐨勫熀紜銆傝孎ilter閾炬渶閰風殑閮ㄥ垎灝辨槸鍚勪釜filter涓嶅繀絳夊緟鍓嶄竴涓猣ilter鎵ц瀹屾瘯銆傚畠鍙互鎶婂墠涓涓? filter鐨勮緭鍑哄仛涓哄綋鍓峟ilter鐨勮緭鍏ワ紝榪欐湁鐐瑰儚Unix鐨勭綰褲傝繖鎰忓懗鐫錛屼竴涓ā鍧楀彲浠ュ紑濮嬪帇緙╀粠鍚庣鏈嶅姟鍣ㄥ彂閫佽繃鏉ョ殑璇鋒眰錛屼笖鍙互鍦ㄦā鍧楁帴鏀? 瀹屽悗绔湇鍔″櫒鐨勬暣涓姹備箣鍓嶆妸鍘嬬緝嫻佽漿鍚戝鎴風銆?br /> Nginx閲囩敤浜嗕竴浜沷s鎻愪緵鐨勬渶鏂扮壒鎬у瀵箂endfile (Linux 2.2+)錛宎ccept-filter (FreeBSD 4.1+)錛孴CP_DEFER_ACCEPT (Linux 2.4+) 鐨勬敮鎸侊紝浠庤屽ぇ澶ф彁楂樹簡鎬ц兘

浜屻?Nginx 瀹夎鍙婅皟璇?/strong>
1銆丳cre 瀹夎

  1. ./configure
  2.   make && make install
  3.   cd ../
澶嶅埗浠g爜

2.        nginx 緙栬瘧瀹夎

  1. ./configure --user=www --group=www --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-openssl=/usr/local/openssl
  2. make && make install
澶嶅埗浠g爜

鏇磋緇嗙殑妯″潡瀹氬埗涓庡畨瑁呰鍙傜収瀹樻柟wiki.

3銆丯ginx 閰嶇疆鏂囦歡嫻嬭瘯錛?/p>

  1. # /usr/local/nginx/sbin/nginx -t  //Debug 閰嶇疆鏂囦歡鐨勫叧閿懡浠ら渶瑕侀噸鐐規拺鎻?
  2. 2008/12/16 09:08:35 [info] 28412#0: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  3. 2008/12/16 09:08:35 [info] 28412#0: the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully
澶嶅埗浠g爜

3銆丯ginx 鍚姩錛?/p>

  1. # /usr/local/nginx/sbin/nginx
澶嶅埗浠g爜

4銆丯ginx 閰嶇疆鏂囦歡淇敼閲嶆柊鍔犺澆錛?/p>

  1. # kill -HUP `cat /usr/local/nginx/logs/nginx.pid
澶嶅埗浠g爜

`
涓夈丯ginx Rewrite

1.  Nginx Rewrite 鍩烘湰鏍囪(flags)
last - 鍩烘湰涓婇兘鐢ㄨ繖涓狥lag銆?/em>
鈥葷浉褰撲簬Apache閲岀殑[L]鏍囪錛岃〃紺哄畬鎴恟ewrite錛屼笉鍐嶅尮閰嶅悗闈㈢殑瑙勫垯
break - 涓Rewirte錛屼笉鍐嶇戶緇尮閰?/em>
redirect - 榪斿洖涓存椂閲嶅畾鍚戠殑HTTP鐘舵?02
permanent - 榪斿洖姘鎬箙閲嶅畾鍚戠殑HTTP鐘舵?01
      鈥誨師鏈夌殑url鏀寔姝e垯  閲嶅啓鐨剈rl涓嶆敮鎸佹鍒?/strong>

2.  姝e垯琛ㄨ揪寮忓尮閰嶏紝鍏朵腑錛?br />     * ~         涓哄尯鍒嗗ぇ灝忓啓鍖歸厤
    * ~*       涓轟笉鍖哄垎澶у皬鍐欏尮閰?/em>
    * !~鍜?~*   鍒嗗埆涓哄尯鍒嗗ぇ灝忓啓涓嶅尮閰嶅強涓嶅尯鍒嗗ぇ灝忓啓涓嶅尮閰?/em>

3. 鏂囦歡鍙婄洰褰曞尮閰嶏紝鍏朵腑錛?br />    * -f鍜?-f鐢ㄦ潵鍒ゆ柇鏄惁瀛樺湪鏂囦歡
    * -d鍜?-d鐢ㄦ潵鍒ゆ柇鏄惁瀛樺湪鐩綍
    * -e鍜?-e鐢ㄦ潵鍒ゆ柇鏄惁瀛樺湪鏂囦歡鎴栫洰褰?/em>
    * -x鍜?-x鐢ㄦ潵鍒ゆ柇鏂囦歡鏄惁鍙墽琛?/em>


3.  Nginx 鐨勪竴浜涘彲鐢ㄧ殑鍏ㄥ眬鍙橀噺錛屽彲鐢ㄥ仛鏉′歡鍒ゆ柇錛?/p>

  1. $args
  2. $content_length
  3. $content_type
  4. $document_root
  5. $document_uri
  6. $host
  7. $http_user_agent
  8. $http_cookie
  9. $limit_rate
  10. $request_body_file
  11. $request_method
  12. $remote_addr
  13. $remote_port
  14. $remote_user
  15. $request_filename
  16. $request_uri
  17. $query_string
  18. $scheme
  19. $server_protocol
  20. $server_addr
  21. $server_name
  22. $server_port
  23. $uri
澶嶅埗浠g爜

鍥涖?Nginx Redirect
灝嗘墍鏈塴inuxtone.org涓巒etseek.linuxtone.org鍩熷悕鍏ㄩ儴鑷煩杞埌http://www.linuxtone.org

  1. server
  2. {
  3. listen 80;
  4. server_name linuxtone.org netseek.linuxtone.org;
  5. index index.html index.php;
  6. root /data/www/wwwroot;
  7. if ($host !~ "^www.linxtone.org$") {
  8. rewrite ^(.*) http://www.linuxtone.org$1 redirect;
  9. }
  10. ........................
  11. }
澶嶅埗浠g爜

浜斻?Nginx 鐩綍鑷姩鍔犳枩綰?

  1. if (-d $request_filename){
  2.            rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
  3.      }
澶嶅埗浠g爜

鍏?nbsp; Nginx Location

1錛庡熀鏈娉?[鍜屼笂闈ewrite姝e垯鍖歸厤璇硶鍩烘湰涓鑷碷
location [=|~|~*|^~] /uri/ { … }
    * ~  涓哄尯鍒嗗ぇ灝忓啓鍖歸厤
    * ~* 涓轟笉鍖哄垎澶у皬鍐欏尮閰?/em>
    * !~鍜?~*鍒嗗埆涓哄尯鍒嗗ぇ灝忓啓涓嶅尮閰嶅強涓嶅尯鍒嗗ぇ灝忓啓涓嶅尮閰?/em>

紺轟緥1:
location = / {
# matches the query / only.
# 鍙尮閰?/ 鏌ヨ銆?/em>
}
鍖歸厤浠諱綍鏌ヨ錛屽洜涓烘墍鏈夎姹傞兘宸?/ 寮澶淬備絾鏄鍒欒〃杈懼紡瑙勫垯鍜岄暱鐨勫潡瑙勫垯灝嗚浼樺厛鍜屾煡璇㈠尮閰?/strong>

紺轟緥2:
location ^~ /images/ {
# matches any query beginning with /images/ and halts searching,
# so regular expressions will not be checked.
# 鍖歸厤浠諱綍宸?/images/ 寮澶寸殑浠諱綍鏌ヨ騫朵笖鍋滄鎼滅儲銆備換浣曟鍒欒〃杈懼紡灝嗕笉浼氳嫻嬭瘯銆?br />
紺轟緥3:
location ~* .(gif|jpg|jpeg)$ {
# matches any request ending in gif, jpg, or jpeg. However, all
# requests to the /images/ directory will be handled by
}
# 鍖歸厤浠諱綍宸?gif銆乯pg 鎴?jpeg 緇撳熬鐨勮姹傘?/strong>


涓冦?Nginx expires

1錛庢牴鎹枃浠剁被鍨媏xpires

  1. # Add expires header for static content
  2. location ~* .(js|css|jpg|jpeg|gif|png|swf)$ {
  3.     if (-f $request_filename) {
  4.        root /data/www/wwwroot/bbs;
  5.        expires      1d;
  6.        break;
  7.     }
  8. }
澶嶅埗浠g爜

2銆佹牴鎹垽鏂煇涓洰褰?/p>

  1. # serve static files
  2. location ~ ^/(images|javascript|js|css|flash|media|static)/  {
  3. root    /data/www/wwwroot/down;
  4.         expires 30d;
  5.   }
澶嶅埗浠g爜

鍏?nbsp; Nginx 闃茬洍閾?/strong>

1.        閽堝涓嶅悓鐨勬枃浠剁被鍨?/p>

  1. #Preventing hot linking of images and other file types
  2. location ~* ^.+.(gif|jpg|png|swf|flv|rar|zip)$ {
  3.         valid_referers none blocked server_names *.linuxtone.org linuxtone.org http://localhost baidu.com;
  4. if ($invalid_referer) {
  5.       rewrite   ^/   ;
  6.      # return   403;
  7.       }
  8. }
澶嶅埗浠g爜

2.        閽堝涓嶅悓鐨勭洰褰?/p>

  1. location /img/ {
  2.     root /data/www/wwwroot/bbs/img/;
  3.     valid_referers none blocked server_names *.linuxtone.org http://localhost baidu.com;
  4.     if ($invalid_referer) {
  5.                    rewrite  ^/  ;
  6.                    #return   403;
  7.     }
  8. }
澶嶅埗浠g爜

3.        鍚屽疄鐜伴槻鐩楅摼鍜宔xpires鐨勬柟娉?/p>

  1. #Preventing hot linking of images and other file types
  2. location ~* ^.+.(gif|jpg|png|swf|flv|rar|zip)$ {
  3.         valid_referers none blocked server_names *.linuxtone.org linuxtone.org http://localhost ;
  4. if ($invalid_referer) {
  5.       rewrite   ^/   ;
  6.                      }
  7.      access_log off;
  8.      root /data/www/wwwroot/bbs;
  9. expires 1d;
  10.      break;
  11. }
澶嶅埗浠g爜

涔濄?Nginx 璁塊棶鎺у埗

1.        Nginx 韜喚璇侀獙璇?/p>

  1. #cd /usr/local/nginx/conf
  2. #mkdir htpasswd
  3. /usr/local/apache2/bin/htpasswd -c /usr/local/nginx/conf/htpasswd/tongji linuxtone
  4. #娣誨姞鐢ㄦ埛鍚嶄負linuxtone
  5. New password:   (姝ゅ杈撳叆浣犵殑瀵嗙爜)
  6. Re-type new password:   (鍐嶆杈撳叆浣犵殑瀵嗙爜)
  7. Adding password for user
  8. http://count.linuxtone.org/tongji/data/index.html(鐩綍瀛樺湪/data/www/wwwroot/tongji/data/鐩綍涓?
  9. 灝嗕笅孌甸厤緗斁鍒拌櫄鎷熶富鏈虹洰褰曪紝褰撹闂甴ttp://count.linuxtone/tongji/鍗蟲彁紺鴻瀵嗛獙璇?
  10. location ~ ^/(tongji)/  {
  11.                 root    /data/www/wwwroot/count;
  12.                         auth_basic              "LT-COUNT-TongJi";
  13.                         auth_basic_user_file  /usr/local/nginx/conf/htpasswd/tongji;
  14.                 }
澶嶅埗浠g爜

2.        Nginx 紱佹璁塊棶鏌愮被鍨嬬殑鏂囦歡.
濡傦紝Nginx涓嬬姝㈣闂?.txt鏂囦歡錛岄厤緗柟娉曞涓?

  1. location ~* .(txt|doc)$ {
  2.    if (-f $request_filename) {
  3.    root /data/www/wwwroot/linuxtone/test;
  4.    #rewrite …..鍙互閲嶅畾鍚戝埌鏌愪釜URL
  5.    break;
  6.    }
  7. }
澶嶅埗浠g爜

鏂規硶2:

  1. location ~* .(txt|doc)${
  2.         root /data/www/wwwroot/linuxtone/test;
  3.         deny all;
  4. }
澶嶅埗浠g爜

瀹炰緥:
紱佹璁塊棶鏌愪釜鐩綍

  1. location ~ ^/(WEB-INF)/ {
  2.             deny all;
  3. }  
澶嶅埗浠g爜

3.        浣跨敤ngx_http_access_module闄愬埗ip璁塊棶

  1. location / {
  2.     deny    192.168.1.1;
  3.     allow   192.168.1.0/24;
  4.     allow   10.1.1.0/16;
  5.     deny    all;
  6. }
澶嶅埗浠g爜

璇︾粏鍙傝wiki: http://wiki.codemongers.com/NginxHttpAccessModule#allow

4.        Nginx 涓嬭澆闄愬埗騫跺彂鍜岄熺巼

  1. limit_zone   linuxtone  $binary_remote_addr  10m;
  2. server
  3.        {
  4.                listen       80;
  5.                server_name  down.linuxotne.org;
  6.                index index.html index.htm index.php;
  7.                root   /data/www/wwwroot/down;
  8.                #Zone limit
  9.                location / {
  10.                    limit_conn   linuxtone  1;
  11.                    limit_rate  20k;
  12.                }
  13. ..........
  14.        }
澶嶅埗浠g爜

鍙厑璁稿鎴跨涓涓嚎紼?姣忎釜綰跨▼20k.
銆愭敞銆?span style="color: #008000;">limit_zone   linuxtone  $binary_remote_addr  10m; 榪欎釜鍙互瀹氫箟鍦ㄤ富鐨?/span>


5.        Nginx 瀹炵幇Apache涓鏍風洰褰曞垪琛?/p>

  1. location  /  {
  2.     autoindex  on;
  3. }
澶嶅埗浠g爜

6.        涓婃枃浠跺ぇ灝忛檺鍒?br /> 涓婚厤緗枃浠墮噷鍔犲叆濡備笅錛屽叿浣撳ぇ灝忔牴鎹綘鑷繁鐨勪笟鍔″仛璋冩暣銆?br /> client_max_body_size 10m;                                                         

鍗併?nbsp;       Nginx 鏃ュ織澶勭悊

1.Nginx 鏃ュ織鍒囧壊
#contab -e
59 23 * * * /usr/local/sbin/logcron.sh /dev/null 2>&1
[root@count ~]# cat /usr/local/sbin/logcron.sh

  1. #!/bin/bash
  2. log_dir="/data/logs"
  3. time=`date +%Y%m%d`  
  4. /bin/mv  ${log_dir}/access_linuxtone.org.log ${log_dir}/access_count.linuxtone.org.$time.log
  5. kill -USR1 `cat  /var/run/nginx.pid`
澶嶅埗浠g爜

鏇村鐨勬棩蹇楀垎鏋愪笌澶勭悊灝卞叧娉?鍚屾椂嬈㈣繋浣犲弬鍔犺璁?:http://bbs.linuxtone.org/forum-8-1.html

2.鍒╃敤AWSTATS鍒嗘瀽NGINX鏃ュ織
  璁劇疆濂絅ginx鏃ュ織鏍煎紡,浠嶅悗鍒╃敤awstats榪涜鍒嗘瀽.
璇峰弬鑰? http://bbs.linuxtone.org/thread-56-1-1.html

3.        Nginx 濡備綍涓嶈褰曢儴鍒嗘棩蹇?br /> 鏃ュ織澶錛屾瘡澶╁ソ鍑犱釜G錛屽皯璁板綍涓浜涳紝涓嬮潰鐨勯厤緗啓鍒皊erver{}孌典腑灝卞彲浠ヤ簡
location ~ .*.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)$
{
     access_log off;
}

鍗佷竴銆丯ginx Cache鏈嶅姟閰嶇疆

濡傛灉闇瑕佸皢鏂囦歡緙撳瓨鍒版湰鍦幫紝鍒欓渶瑕佸鍔犲涓嬪嚑涓瓙鍙傛暟錛?/p>

  1. proxy_store on;
  2. proxy_store_access user:rw group:rw all:rw;
  3. proxy_temp_path 緙撳瓨鐩綍;
澶嶅埗浠g爜

鍏朵腑錛?br /> proxy_store on鐢ㄦ潵鍚敤緙撳瓨鍒版湰鍦扮殑鍔熻兘錛?br /> proxy_temp_path鐢ㄦ潵鎸囧畾緙撳瓨鍦ㄥ摢涓洰褰曚笅錛屽錛歱roxy_temp_path html;

鍦ㄧ粡榪囦笂涓姝ラ厤緗箣鍚庯紝铏界劧鏂囦歡琚紦瀛樺埌浜嗘湰鍦扮鐩樹笂錛屼絾姣忔璇鋒眰浠嶄細鍚戣繙绔媺鍙栨枃浠訛紝涓轟簡閬垮厤鍘昏繙绔媺鍙栨枃浠訛紝蹇呴』淇敼

  1. proxy_pass錛?/li>
  2. if ( !-e $request_filename) {
  3.     proxy_pass  http://mysvr;
  4. }
澶嶅埗浠g爜

鍗蟲敼鎴愭湁鏉′歡鍦板幓鎵цproxy_pass錛岃繖涓潯浠跺氨鏄綋璇鋒眰鐨勬枃浠跺湪鏈湴鐨刾roxy_temp_path鎸囧畾鐨勭洰褰曚笅涓嶅瓨鍦ㄦ椂錛屽啀鍚戝悗绔媺鍙栥?br />
   
鏇村鏇撮珮綰х殑搴旂敤鍙互鐮旂┒ncache,璇︾粏璇峰弬鐓?a target="_blank">http://bbs.linuxtone.org 閲宯cache鐩稿叧鐨勮創瀛?

鍗佷簩銆丯ginx 璐熻澆鍧囪 
1. Nginx 璐熻澆鍧囪 鍩虹鐭ヨ瘑
nginx鐨剈pstream鐩墠鏀寔4縐嶆柟寮忕殑鍒嗛厤
1)銆佽疆璇紙榛樿錛?/span>
姣忎釜璇鋒眰鎸夋椂闂撮『搴忛愪竴鍒嗛厤鍒頒笉鍚岀殑鍚庣鏈嶅姟鍣紝濡傛灉鍚庣鏈嶅姟鍣╠own鎺夛紝鑳借嚜鍔ㄥ墧闄ゃ?/span>
2)銆亀eight
鎸囧畾杞鍑犵巼錛寃eight鍜岃闂瘮鐜囨垚姝f瘮錛岀敤浜庡悗绔湇鍔″櫒鎬ц兘涓嶅潎鐨勬儏鍐點?/span>
2)銆乮p_hash
姣忎釜璇鋒眰鎸夎闂甶p鐨刪ash緇撴灉鍒嗛厤錛岃繖鏍鋒瘡涓瀹㈠浐瀹氳闂竴涓悗绔湇鍔″櫒錛屽彲浠ヨВ鍐硈ession鐨勯棶棰樸?/span>
3)銆乫air錛堢涓夋柟錛?/span>
鎸夊悗绔湇鍔″櫒鐨勫搷搴旀椂闂存潵鍒嗛厤璇鋒眰錛屽搷搴旀椂闂寸煭鐨勪紭鍏堝垎閰嶃?
4)銆乽rl_hash錛堢涓夋柟錛?/span>

2.        Nginx 璐熻澆鍧囪 瀹炰緥1

  1. upstream bbs.linuxtone.org {#瀹氫箟璐熻澆鍧囪 璁懼鐨処p鍙婅澶囩姸鎬?/li>
  2.     server 127.0.0.1:9090 down;
  3.     server 127.0.0.1:8080 weight=2;
  4.     server 127.0.0.1:6060;
  5.     server 127.0.0.1:7070 backup;
  6. }
澶嶅埗浠g爜

鍦ㄩ渶瑕佷嬌鐢ㄨ礋杞藉潎琛$殑server涓鍔?br /> proxy_pass http://bbs.linuxtone.org/;

姣忎釜璁懼鐨勭姸鎬佽緗負:
a)        down 琛ㄧず鍗曞墠鐨剆erver鏆傛椂涓嶅弬涓庤礋杞?/span>
b)        weight 榛樿涓?.weight瓚婂ぇ錛岃礋杞界殑鏉冮噸灝辮秺澶с?/span>
c)        max_fails 錛氬厑璁歌姹傚け璐ョ殑嬈℃暟榛樿涓?.褰撹秴榪囨渶澶ф鏁版椂錛岃繑鍥瀙roxy_next_upstream 妯″潡瀹氫箟鐨勯敊璇?/span>
d)        fail_timeout:max_fails嬈″け璐ュ悗錛屾殏鍋滅殑鏃墮棿銆?/span>
e)        backup錛?鍏跺畠鎵鏈夌殑闈瀊ackup鏈哄櫒down鎴栬呭繖鐨勬椂鍊欙紝璇鋒眰backup鏈哄櫒銆傛墍浠ヨ繖鍙版満鍣ㄥ帇鍔涗細鏈杞匯?/span>

nginx鏀寔鍚屾椂璁劇疆澶氱粍鐨勮礋杞藉潎琛★紝鐢ㄦ潵緇欎笉鐢ㄧ殑server鏉ヤ嬌鐢ㄣ?br />
client_body_in_file_only 璁劇疆涓篛n 鍙互璁瞔lient post榪囨潵鐨勬暟鎹褰曞埌鏂囦歡涓敤鏉ュ仛debug
client_body_temp_path 璁劇疆璁板綍鏂囦歡鐨勭洰褰?鍙互璁劇疆鏈澶?灞傜洰褰?br /> location 瀵筓RL榪涜鍖歸厤.鍙互榪涜閲嶅畾鍚戞垨鑰呰繘琛屾柊鐨勪唬鐞?璐熻澆鍧囪 


3.        Nginx 璐熻澆鍧囪 瀹炰緥 2
鎸夎闂畊rl鐨刪ash緇撴灉鏉ュ垎閰嶈姹傦紝浣挎瘡涓猽rl瀹氬悜鍒板悓涓涓悗绔湇鍔″櫒錛屽悗绔湇鍔″櫒涓虹紦瀛樻椂姣旇緝鏈夋晥,涔熷彲浠ョ敤浣滄彁楂楽quid緙撳瓨鍛戒腑鐜?

綆鍗曠殑璐熻澆鍧囩瓑瀹炰緥:
#vi nginx.conf  //nginx涓婚厤緗枃浠舵牳蹇冮厤緗?/p>

  1. ……….
  2. #loadblance my.linuxtone.org
  3.        upstream  my.linuxtone.org  {
  4.        ip_hash;
  5.        server   127.0.0.1:8080;
  6.        server   192.168.169.136:8080;
  7.        server   219.101.75.138:8080;
  8.        server   192.168.169.117;
  9.        server   192.168.169.118;
  10.        server   192.168.169.119;
  11.      }
  12. …………..
  13. include          vhosts/linuxtone_lb.conf;
  14. ………
  15. # vi proxy.conf
  16. proxy_redirect off;
  17. proxy_set_header Host $host;
  18. proxy_set_header X-Real-IP $remote_addr;
  19. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  20. client_max_body_size 50m;
  21. client_body_buffer_size 256k;
  22. proxy_connect_timeout 30;
  23. proxy_send_timeout 30;
  24. proxy_read_timeout 60;
  25. proxy_buffer_size 4k;
  26. proxy_buffers 4 32k;
  27. proxy_busy_buffers_size 64k;
  28. proxy_temp_file_write_size 64k;
  29. proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
  30. proxy_max_temp_file_size 128m;
  31. proxy_store on;
  32. proxy_store_access   user:rw  group:rw  all:r;
  33. #nginx cache               
  34. #client_body_temp_path  /data/nginx_cache/client_body 1 2;
  35. proxy_temp_path /data/nginx_cache/proxy_temp 1 2;
澶嶅埗浠g爜

#vi  linuxtone_lb.conf

  1. server
  2.     {
  3.         listen  80;
  4.         server_name my.linuxtone.org;
  5.         index index.php;
  6.         root /data/www/wwwroot/mylinuxtone;
  7.         if (-f $request_filename) {
  8.             break;
  9.            }
  10.         if (-f $request_filename/index.php) {
  11.           rewrite (.*) $1/index.php break;
  12.         }
  13.         error_page 403 http://my.linuxtone.org/member.php?m=user&a=login;
  14.         location / {
  15.            if ( !-e $request_filename) {
  16.                proxy_pass http://my.linuxtone.org;
  17.                break;
  18.            }
  19.            include /usr/local/nginx/conf/proxy.conf;
  20.         }
  21. }
澶嶅埗浠g爜



鍗佷笁銆丯ginx綆鍗曚紭鍖?/strong>

1.        鍑忓皬nginx緙栬瘧鍚庣殑鏂囦歡澶у皬 (Reduce file size of nginx)
榛樿鐨刵ginx緙栬瘧閫夐」閲屽眳鐒舵槸鐢╠ebug妯″紡(-g)鐨勶紙debug妯″紡浼氭彃鍏ュ緢澶氳窡韙拰ASSERT涔嬬被錛夛紝緙栬瘧浠ュ悗涓涓猲ginx鏈夊ソ鍑犲厗銆傚幓鎺塶ginx鐨刣ebug妯″紡緙栬瘧錛岀紪璇戜互鍚庡彧鏈夊嚑鐧綤
鍦?auto/cc/gcc錛屾渶鍚庡嚑琛屾湁錛?br /> # debug

  1. CFLAGS=”$CFLAGS -g”
澶嶅埗浠g爜

娉ㄩ噴鎺夋垨鍒犳帀榪欏嚑琛岋紝閲嶆柊緙栬瘧鍗沖彲銆?br />
2.        淇敼Nginx鐨刪eader浼鏈嶅姟鍣?br /> 1)        淇敼nginx.h

  1. #vi nginx-0.7.30/src/core/nginx.h
  2. #define NGINX_VERSION      "1.8"
  3. #define NGINX_VER          "LTWS/" NGINX_VERSION
  4. #define NGINX_VAR          "NGINX"
  5. #define NGX_OLDPID_EXT     ".oldbin"
澶嶅埗浠g爜

2) 淇敼nginx_http_header_filter_module
#vi nginx-0.7.30/src/http/ngx_http_header_filter_module.c
灝嗗涓?/p>

  1. static char ngx_http_server_string[] = "Server: nginx" CRLF;
澶嶅埗浠g爜

淇敼涓?/p>

  1. static char ngx_http_server_string[] = "Server: LTWS" CRLF;
澶嶅埗浠g爜

a)        淇敼nginx_http_header_filter_module
#vi nginx-0.7.30/src/http/ngx_http_special_response.c
灝嗗涓嬶細

  1. static u_char ngx_http_error_full_tail[] =
  2. "<hr><center>" NGINX_VER "</center>" CRLF
  3. "</body>" CRLF
  4. "</html>" CRLF
  5. ;
澶嶅埗浠g爜
  1. static u_char ngx_http_error_tail[] =
  2. "<hr><center>nginx</center>" CRLF
  3. "</body>" CRLF
  4. "</html>" CRLF
  5. ;
澶嶅埗浠g爜

淇敼涓?

  1. static u_char ngx_http_error_full_tail[] =
  2. "<center> "NGINX_VER" </center>" CRLF
  3. "<hr><center>http://www.linuxtone.org</center>" CRLF
  4. "</body>" CRLF
  5. "</html>" CRLF
  6. ;
  7. static u_char ngx_http_error_tail[] =
  8. "<hr><center>LTWS</center>" CRLF
  9. "</body>" CRLF
  10. "</html>" CRLF
  11. ;
澶嶅埗浠g爜

淇敼鍚庨噸鏂扮紪璇戜竴涓嬬幆澧?
404閿欒鐨勬椂鍊欐樉紺烘晥鏋滃浘錛堝鏋滄病鏈夋寚瀹氶敊璇〉鐨勮瘽錛夛細
404.png

鍒╃敤curl鍛戒護鏌ョ湅鏈嶅姟鍣╤eader
curl.png



 

3.涓虹壒瀹氱殑CPU鎸囧畾CPU綾誨瀷緙栬瘧浼樺寲.
榛樿nginx浣跨敤鐨凣CC緙栬瘧鍙傛暟鏄?O
闇瑕佹洿鍔犱紭鍖栧彲浠ヤ嬌鐢ㄤ互涓嬩袱涓弬鏁?br /> --with-cc-opt='-O3'
--with-cpu-opt=opteron
浣垮緱緙栬瘧閽堝鐗瑰畾CPU浠ュ強澧炲姞GCC鐨勪紭鍖?
姝ゆ柟娉曚粎瀵規ц兘鏈夋墍鏀瑰杽騫朵笉浼氭湁寰堝ぇ鐨勬ц兘鎻愬崌錛屼緵鏈嬪弸浠弬鑰?
CPUD綾誨瀷紜畾: # cat /proc/cpuinfo | grep "model name"
緙栬瘧浼樺寲鍙傛暟鍙傝冿細http://en.gentoo-wiki.com/wiki/Safe_Cflags


4.Tcmalloc浼樺寲Nginx 鎬ц兘

  1. # wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-alpha.tar.gz
  2. # tar zxvf libunwind-0.99-alpha.tar.gz
  3. # cd libunwind-0.99-alpha/
  4. # CFLAGS=-fPIC ./configure
  5. # make CFLAGS=-fPIC
  6. # make CFLAGS=-fPIC install
  7. # wget http://google-perftools.googlecode.com/files/google-perftools-0.98.tar.gz
  8. # tar zxvf google-perftools-0.98.tar.gz
  9. # cd google-perftools-0.98/
  10. # ./configure
  11. # make && make install
  12. # echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
  13. # ldconfig
  14. # lsof -n | grep tcmalloc
澶嶅埗浠g爜

緙栬瘧nginx 鍔犺澆google_perftools_module:
./configure --with-google_perftools_module
鍦ㄤ富閰嶇疆鏂囦歡鍔犲叆nginx.conf 娣誨姞:
google_perftools_profiles /path/to/profile;

5.鍐呮牳鍙傛暟浼樺寲
# vi /etc/sysctl.conf   #鍦ㄦ湯灝懼鍔犱互涓嬪唴瀹癸細

  1. net.ipv4.tcp_fin_timeout = 30
  2. net.ipv4.tcp_keepalive_time = 300
  3. net.ipv4.tcp_syncookies = 1
  4. net.ipv4.tcp_tw_reuse = 1
  5. net.ipv4.tcp_tw_recycle = 1
  6. net.ipv4.ip_local_port_range = 5000 65000
澶嶅埗浠g爜

#浣塊厤緗珛鍗崇敓鏁?br /> /sbin/sysctl -p

鍗佸洓銆佸浣曟瀯寤洪珮鎬х殑LEMP
璇峰弬瑙? http://www.linuxtone.org/lemp/lemp.pdf
1銆佹彁渚涘畬鏁寸殑閰嶇疆鑴氭湰涓嬭澆錛?a target="_blank">http://www.linuxtone.org/lemp/scripts.tar.gz
2銆佹彁渚汵GINX甯歌閰嶇疆鑼冧緥鍚?铏氭嫙涓繪満錛岄槻鐩楅摼錛孯ewrite,璁塊棶鎺у埗錛岃礋杞藉潎琛?br /> Discuz鐩稿叧紼嬪簭闈欐佸寲鍙婄瓑絳?,浣犲彧瑕佺◢紼嶄慨鏀瑰嵆鍙嚎涓婂簲鐢ㄣ?3銆佸皢鍘熺増鐨剎cache鏇挎崲鎴怑A錛屽茍鎻愪緵鐩稿叧綆鍗曡皟浼樿剼鏈強閰嶇疆鏂囦歡銆?br /> 鏇村鐨勫強鏇存柊璧勬枡璇峰叧娉? http://www.linuxtone.org

鍗佷簲銆丯ginx鐩戞帶
1銆?nbsp;       RRDTOOL+Perl鑴氭湰鐢誨浘鐩戞帶
鍏堝畨瑁呭ソrrdtool 錛屽叧浜巖rdtool鏈枃涓嶄綔浠嬬粛錛屽叿浣撳畨瑁呰鍙傜収linuxtone鐩戞帶鐗堝潡.
#cd /usr/local/sbnin
#wget http://blog.kovyrin.net/files/mrtg/rrd_nginx.pl.txt
#mv rrd_nginx.pl.txt rrd_nginx.pl
#chmod a+x rrd_nginx.pl

#vi rrd_nginx.pl   //閰嶇疆鑴氭湰鏂囦歡璁劇疆濂借礬寰?br /> #!/usr/bin/perl
use RRDs;
use LWP::UserAgent;

# define location of rrdtool databases
my $rrd = '/data/www/wwwroot/nginx/rrd';
# define location of images
my $img = '/data/www/wwwroot/nginx/html';
# define your nginx stats URL
my $URL = "http://219.232.244.13/nginx_status";
…………
銆愭敞銆戞牴鎹嚜宸卞叿浣撶殑鐘跺喌淇敼鐩稿簲鐨勮礬寰?
#crontab –e //鍔犲叆濡備笅
* * * * * /usr/local/sbin/rrd_nginx.pl
閲嶅惎crond鍚庯紝閫氳繃閰嶇疆nginx铏氭嫙涓繪満鎸囧埌/data/www/wwwroot/nginx/html鐩綍錛岄氳繃crond鑷姩鎵цperl鑴氭湰浼氱敓鎴愬緢澶氬浘鐗?
http://xxx/connections-day.png鍗沖彲鐪嬪埌鏈嶅姟鍣ㄧ姸鎬佸浘銆?br />
2銆?nbsp;       瀹樻柟Nginx-rrd 鐩戞帶鏈嶅姟錛堝铏氭嫙涓繪満錛夛紙鎺ㄨ崘錛?br /> 緗戝潃錛?a target="_blank">http://www.nginx.eu/nginx-rrd.html
姝よВ鍐蟲柟妗堝叾瀹炴槸鍩轟簬涓婅堪鐩戞帶鏂規鐨勪竴涓敼榪涘拰澧炲己錛屽悓鏍峰厛瀹夎濂絩rdtool榪欎釜鐢誨浘宸ュ叿鍜岀浉搴旂殑perl妯″潡鍐嶅仛濡備笅鎿嶄綔錛?br /> # yum install perl-HTML*
鍏堝緩绔嬪ソ鐢熸垚鐨勫簱瀛樺拰鍥劇墖瀛樻斁褰?/p>

  1. #mkdir -p /data/www/wwwroot/nginx/{rrd,html}
  2. #cd /usr/local/sbin
  3. #wget http://www.nginx.eu/nginx-rrd/nginx-rrd-0.1.4.tgz
  4. #tar zxvf nginx-rrd-0.1.4.tgz
  5. #cd nginx-rrd-0.1.4
  6. #cd etc/
  7. #cp nginx-rrd.conf /etc
  8. #cd etc/cron.d
  9. #cp nginx-rrd.cron /etc/cron.d
  10. #cd /usr/local/src/nginx-rrd-0.1.4/html
  11. # cp index.php /data/www/wwwroot/nginx/html/
  12. #cd /usr/local/src/nginx-rrd-0.1.4/usr/sbin
  13. #cp * /usr/sbin/
澶嶅埗浠g爜

#vi /etc/nginx-rrd.conf

  1. #####################################################
  2. #
  3. # dir where rrd databases are stored
  4. RRD_DIR="/data/www/wwwroot/nginx/rrd";
  5. # dir where png images are presented
  6. WWW_DIR="/data/www/wwwroot/nginx/html";
  7. # process nice level
  8. NICE_LEVEL="-19";
  9. # bin dir
  10. BIN_DIR="/usr/sbin";
  11. # servers to test
  12. # server_utl;server_name
  13. SERVERS_URL="http://219.32.205.13/nginx_status;219.32.205.13  http://www.linuxtone.org/nginx_status;www.linuxtone.org""
澶嶅埗浠g爜

//鏍規嵁浣犵殑鍏蜂綋鎯呭喌鍋氳皟鏁?
SEVERS_URL 鏍煎紡 http://domain1/nginx_status;domain1 http://domain2/nginx_status;domain2
榪欑鏍煎紡鐩戞帶澶氳櫄鎷熶富鏈鴻繛鎺ョ姸鎬侊細
閲嶇偣鍚痗rond鏈嶅姟錛屼粛鍚庨氳繃http://219.32.205.13/nginx/html/ 鍗沖彲璁塊棶銆傞厤緗繃紼嬪緢綆鍗曪紒

3銆?nbsp;       CACTI妯℃澘鐩戞帶Nginx
鍒╃敤Nginx_status鐘舵佹潵鐢誨浘瀹炵幇CACTI鐩戞帶
nginx緙栬瘧鏃跺厑璁竓ttp_stub_status_module

# vi /usr/local/nginx/conf/nginx.conf

  1. location /nginx_status {
  2. stub_status on;
  3. access_log off;
  4. allow 192.168.1.37;
  5. deny all;
  6. }
澶嶅埗浠g爜
  1. # kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
  2. # wget http://forums.cacti.net/download.php?id=12676
  3. # tar xvfz cacti-nginx.tar.gz
  4. # cp cacti-nginx/get_nginx_socket_status.pl /data/cacti/scripts/
  5. # cp cacti-nginx/get_nginx_clients_status.pl /data/cacti/scripts/
  6. # chmod 755 /data/cacti/scripts/get_nginx*
澶嶅埗浠g爜

媯嫻嬫彃浠?/p>

  1. # /data/cacti/scripts/get_nginx_clients_status.pl http://192.168.1.37/nginx_status
澶嶅埗浠g爜

鍦╟acti綆$悊闈㈡澘瀵煎叆
cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml

鍗佸叚銆佸父瑙侀棶棰樹笌閿欒澶勭悊
1銆?00 bad request閿欒鐨勫師鍥犲拰瑙e喅鍔炴硶
閰嶇疆nginx.conf鐩稿叧璁劇疆濡備笅.
client_header_buffer_size 16k;
large_client_header_buffers 4 64k;
鏍規嵁鍏蜂綋鎯呭喌璋冩暣錛屼竴鑸傚綋璋冩暣鍊煎氨鍙互銆?br />
2銆丯ginx 502 Bad Gateway閿欒
proxy_next_upstream error timeout invalid_header http_500 http_503;
鎴栬呭皾璇曡緗?
large_client_header_buffers 4 32k;


3銆丯ginx鍑虹幇鐨?13 Request Entity Too Large閿欒
榪欎釜閿欒涓鑸湪涓婁紶鏂囦歡鐨勬椂鍊欎細鍑虹幇錛?br /> 緙栬緫Nginx涓婚厤緗枃浠禢ginx.conf錛屾壘鍒癶ttp{}孌碉紝娣誨姞
client_max_body_size 10m; //璁劇疆澶氬ぇ鏍規嵁鑷繁鐨勯渶姹備綔璋冩暣.
濡傛灉榪愯php鐨勮瘽榪欎釜澶у皬client_max_body_size瑕佸拰php.ini涓殑濡備笅鍊肩殑鏈澶у間竴鑷存垨鑰呯◢澶э紝榪欐牱灝變笉浼氬洜涓烘彁浜ゆ暟鎹ぇ灝忎笉涓鑷村嚭鐜扮殑閿欒銆?br /> post_max_size = 10M
upload_max_filesize = 2M

4銆佽В鍐?04 Gateway Time-out(nginx)
閬囧埌榪欎釜闂鏄湪鍗囩駭discuz璁哄潧鐨勬椂鍊欓亣鍒扮殑
涓鑸湅鏉? 榪欑鎯呭喌鍙兘鏄敱浜巒ginx榛樿鐨刦astcgi榪涚▼鍝嶅簲鐨勭紦鍐插尯澶皬閫犳垚鐨? 榪欏皢瀵艱嚧fastcgi榪涚▼琚寕璧? 濡傛灉浣犵殑fastcgi鏈嶅姟瀵硅繖涓寕璧峰鐞嗙殑涓嶅ソ, 閭d箞鏈鍚庡氨鏋佹湁鍙兘瀵艱嚧504 Gateway Time-out
鐜板湪鐨勭綉绔? 灝ゅ叾鏌愪簺璁哄潧鏈夊ぇ閲忕殑鍥炲鍜屽緢澶氬唴瀹圭殑, 涓涓〉闈㈢敋鑷蟲湁鍑犵櫨K銆?br /> 榛樿鐨刦astcgi榪涚▼鍝嶅簲鐨勭紦鍐插尯鏄?K, 鎴戜滑鍙互璁劇疆澶х偣
鍦╪ginx.conf閲? 鍔犲叆錛?fastcgi_buffers 8 128k
榪欒〃紺鴻緗甪astcgi緙撳啿鍖轟負8×128k
褰撶劧濡傛灉鎮ㄥ湪榪涜鏌愪竴欏瑰嵆鏃剁殑鎿嶄綔, 鍙兘闇瑕乶ginx鐨勮秴鏃跺弬鏁拌皟澶х偣錛屼緥濡傝緗垚60縐掞細send_timeout 60;
鍙槸璋冩暣浜嗚繖涓や釜鍙傛暟, 緇撴灉灝辨槸娌℃湁鍐嶆樉紺洪偅涓秴鏃? 鍙互璇存晥鏋滀笉閿? 浣嗘槸涔熷彲鑳芥槸鐢變簬鍏朵粬鐨勫師鍥? 鐩墠鍏充簬nginx鐨勮祫鏂欎笉鏄緢澶? 寰堝浜嬫儏閮介渶瑕侀暱鏈熺殑緇忛獙绱鎵嶆湁緇撴灉, 鏈熷緟鎮ㄧ殑鍙戠幇鍝?

5銆佸浣曚嬌鐢∟ginx Proxy
鏈嬪弸涓鍙版湇鍔″櫒榪愯tomcat 涓?080绔彛,IP:192.168.1.2:8080,鍙︿竴鍙版満鍣↖P:192.168.1.8. 鏈嬪弸鎯抽氳繃璁塊棶http://192.168.1.8鍗沖彲璁塊棶tomcat鏈嶅姟.閰嶇疆濡備笅:
鍦?92.168.1.8鐨刵ginx.conf涓婇厤緗涓?

  1. server {
  2. listen 80;
  3. server_name java.linuxtone.org
  4. location / {
  5. proxy_pass http://192.168.1.2:8080;
  6. include /usr/local/nginx/conf/proxy.conf;
  7. }
  8. }
澶嶅埗浠g爜

6銆佸浣曞叧闂璑ginx鐨凩OG
access_log /dev/null; error_log /dev/null;

鍗佷竷銆佺浉鍏寵祫婧愪笅杞?/strong>

1.nginx閰嶇疆紺轟緥鍙婅剼鏈笅杞?
# wget http://www.linuxtone.org/lemp/scripts.tar.gz #姝よ剼鏈寖渚嬪畾鏈熸洿鏂?


鐩稿叧璇濋 錛?a >鏌ョ湅鏇村錛?a >鐭ヨ瘑搴撴悳绱?/a>錛?/strong>

鍏朵腑浠ヤ笅榪欓」鎸哄煎緱鐣欐剰鐨勩?br /> Tcmalloc 涓嶅崟鍙敤浜?Mysql 鐨勪紭鍖栵紝榪樿兘搴旂敤浜?Nginx
铏借 Nginx 鏈韓鐨勬ц兘璺熺郴緇熷崰鐢ㄥ凡緇忓仛鍒板緢浼樼銆?/p>

4.Tcmalloc浼樺寲Nginx 鎬ц兘

  1. # wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-alpha.tar.gz
  2. # tar zxvf libunwind-0.99-alpha.tar.gz
  3. # cd libunwind-0.99-alpha/
  4. # CFLAGS=-fPIC ./configure
  5. # make CFLAGS=-fPIC
  6. # make CFLAGS=-fPIC install
  7. # wget http://google-perftools.googlecode.com/files/google-perftools-0.98.tar.gz
  8. # tar zxvf google-perftools-0.98.tar.gz
  9. # cd google-perftools-0.98/
  10. # ./configure
  11. # make && make install
  12. # echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
  13. # ldconfig
  14. # lsof -n | grep tcmalloc






]]>
鎴戠殑 vimrchttp://www.tkk7.com/Skynet/archive/2010/01/18/309949.html鍒樺嚡姣?/dc:creator>鍒樺嚡姣?/author>Mon, 18 Jan 2010 05:45:00 GMThttp://www.tkk7.com/Skynet/archive/2010/01/18/309949.htmlhttp://www.tkk7.com/Skynet/comments/309949.htmlhttp://www.tkk7.com/Skynet/archive/2010/01/18/309949.html#Feedback0http://www.tkk7.com/Skynet/comments/commentRss/309949.htmlhttp://www.tkk7.com/Skynet/services/trackbacks/309949.html闃呰鍏ㄦ枃

]]>
libevent 瀛︿範絎旇http://www.tkk7.com/Skynet/archive/2010/01/05/308249.html鍒樺嚡姣?/dc:creator>鍒樺嚡姣?/author>Tue, 05 Jan 2010 03:21:00 GMThttp://www.tkk7.com/Skynet/archive/2010/01/05/308249.htmlhttp://www.tkk7.com/Skynet/comments/308249.htmlhttp://www.tkk7.com/Skynet/archive/2010/01/05/308249.html#Feedback0http://www.tkk7.com/Skynet/comments/commentRss/308249.htmlhttp://www.tkk7.com/Skynet/services/trackbacks/308249.html 瀛︿範錛?br /> http://blog.chinaunix.net/u1/59571/showart_2077664.html

涓漢瀵逛笂闈㈡枃绔犲仛鐨?絎旇鍏變韓鍑烘潵 鍜屽ぇ瀹跺垎浜紒




]]>
MoinMoin wiki 鏈嶅姟鍣ㄦ惌寤?涓庡皾璇?/title><link>http://www.tkk7.com/Skynet/archive/2009/12/20/306749.html</link><dc:creator>鍒樺嚡姣?/dc:creator><author>鍒樺嚡姣?/author><pubDate>Sun, 20 Dec 2009 15:34:00 GMT</pubDate><guid>http://www.tkk7.com/Skynet/archive/2009/12/20/306749.html</guid><wfw:comment>http://www.tkk7.com/Skynet/comments/306749.html</wfw:comment><comments>http://www.tkk7.com/Skynet/archive/2009/12/20/306749.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Skynet/comments/commentRss/306749.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Skynet/services/trackbacks/306749.html</trackback:ping><description><![CDATA[python easy_install moin 鎴?涓嬭澆 moin-1.9.0 緙栬瘧<br /> 璁劇疆 path 涓湁 moin.py <br /> #鎴戣繖 鍙傝?br /> path = $PATH:/Python25/moin-1.9.0/MoinMoin/script<br /> <br /> # wikiconfig.py 涓嬮潰鎴戠偣涓?鍙傛暟 錛屽ぇ瀹剁湅浠g爜 灝辯煡閬撲簡<br /> vi  /Python25/moin-1.9.0/wiki/config/<strong>wikiconfig.py</strong><br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008000;">#</span><span style="color: #008000;">instance_dir = '/where/ever/your/instance/is'</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">instance_dir </span><span style="color: #000000;">=</span><span style="color: #000000;"> wikiconfig_dir</span><span style="color: #000000;">+</span><span style="color: #800000;">'</span><span style="color: #800000;">/../</span><span style="color: #800000;">'</span><span style="color: #000000;"><br /> <br /> </span><span style="color: #008000;">#</span><span style="color: #008000;"> Where your own wiki pages are (make regular backups of this directory):</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">data_dir </span><span style="color: #000000;">=</span><span style="color: #000000;"> os.path.join(instance_dir, </span><span style="color: #800000;">'</span><span style="color: #800000;">data-1</span><span style="color: #800000;">'</span><span style="color: #000000;">, </span><span style="color: #800000;">''</span><span style="color: #000000;">) </span><span style="color: #008000;">#</span><span style="color: #008000;"> path with trailing /</span><span style="color: #008000;"><br /> </span><span style="color: #000000;"><br /> <br /> navi_bar </span><span style="color: #000000;">=</span><span style="color: #000000;"> [<br />         </span><span style="color: #008000;">#</span><span style="color: #008000;"> If you want to show your page_front_page here:</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">        </span><span style="color: #008000;">#</span><span style="color: #008000;">u'%(page_front_page)s',</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">        u</span><span style="color: #800000;">'</span><span style="color: #800000;">鏍囬</span><span style="color: #800000;">'</span><span style="color: #000000;">,<br />         u</span><span style="color: #800000;">'</span><span style="color: #800000;">FindPage</span><span style="color: #800000;">'</span><span style="color: #000000;">,<br />         u</span><span style="color: #800000;">'</span><span style="color: #800000;">HelpContents</span><span style="color: #800000;">'</span><span style="color: #000000;">,<br />     ]<br /> <br /> language_default </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">'</span><span style="color: #800000;">zh</span><span style="color: #800000;">'</span></div> <br /> 鍦ㄤ慨鏀筶inux 鏃朵笉璧蜂綔鐢?錛?br /> 淇敼/root/tools/moin-1.9.0/MoinMoin/script/server/standalone.py 鍏ㄥ眬鍏?br /> <br /> <br /> 榪愯錛?br /> <strong>$>moin  </strong>server standalone --config-dir=/root/wiki/mywiki/config/ --hostname=192.168.102.207 --port=18081<br /> 鍛戒護鏄彲璋冨弬鏁幫細<br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008000;">#</span><span style="color: #008000;">/root/tools/moin-1.9.0/MoinMoin/script/server/standalone.py</span><span style="color: #008000;"><br /> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> PluginScript(MoinScript):<br />     </span><span style="color: #0000ff;">def</span><span style="color: #000000;"> </span><span style="color: #800080;">__init__</span><span style="color: #000000;">(self, argv, def_values):<br />         MoinScript.</span><span style="color: #800080;">__init__</span><span style="color: #000000;">(self, argv, def_values)<br />         self.parser.add_option(<br />             </span><span style="color: #800000;">"</span><span style="color: #800000;">--docs</span><span style="color: #800000;">"</span><span style="color: #000000;">, dest</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">docs</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />             help</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">Set the documents directory. Default: use builtin MoinMoin/web/static/htdocs</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />         )<br />         self.parser.add_option(<br />             </span><span style="color: #800000;">"</span><span style="color: #800000;">--user</span><span style="color: #800000;">"</span><span style="color: #000000;">, dest</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">user</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />             help</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">Set the user to change to. UNIX only. Default: Don't change</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />         )<br />         self.parser.add_option(<br />             </span><span style="color: #800000;">"</span><span style="color: #800000;">--group</span><span style="color: #800000;">"</span><span style="color: #000000;">, dest</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">group</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />             help</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">Set the group to change to. UNIX only. Default: Don't change</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />         )<br />         self.parser.add_option(<br />             </span><span style="color: #800000;">"</span><span style="color: #800000;">--port</span><span style="color: #800000;">"</span><span style="color: #000000;">, dest</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">port</span><span style="color: #800000;">"</span><span style="color: #000000;">, type</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">int</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />             help</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">Set the port to listen on. Default: 8080</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />         )<br />         self.parser.add_option(<br />             </span><span style="color: #800000;">"</span><span style="color: #800000;">--hostname</span><span style="color: #800000;">"</span><span style="color: #000000;">, </span><span style="color: #800000;">"</span><span style="color: #800000;">--interface</span><span style="color: #800000;">"</span><span style="color: #000000;">, dest</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">hostname</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />             help</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">Set the ip/hostname to listen on. Use \</span><span style="color: #800000;">"</span><span style="color: #000000;">\</span><span style="color: #800000;">"</span><span style="color: #800000;"> for all interfaces. Default: localhost</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />         )<br />         self.parser.add_option(<br />             </span><span style="color: #800000;">"</span><span style="color: #800000;">--start</span><span style="color: #800000;">"</span><span style="color: #000000;">, dest</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">start</span><span style="color: #800000;">"</span><span style="color: #000000;">, action</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">store_true</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />             help</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">Start server in background.</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />         )<br />         self.parser.add_option(<br />             </span><span style="color: #800000;">"</span><span style="color: #800000;">--stop</span><span style="color: #800000;">"</span><span style="color: #000000;">, dest</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">stop</span><span style="color: #800000;">"</span><span style="color: #000000;">, action</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">store_true</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />             help</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">Stop server in background.</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />         )<br />         self.parser.add_option(<br />             </span><span style="color: #800000;">"</span><span style="color: #800000;">--pidfile</span><span style="color: #800000;">"</span><span style="color: #000000;">, dest</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">pidfile</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />             help</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">Set file to store pid of moin daemon in. Default: moin.pid</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />         )<br />         self.parser.add_option(<br />             </span><span style="color: #800000;">"</span><span style="color: #800000;">--debug</span><span style="color: #800000;">"</span><span style="color: #000000;">, dest</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">debug</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />             help</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">Debug mode of server. off: no debugging (default), web: for browser based debugging, external: for using an external debugger.</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />         )<br /> </span></div> <br /> <br /> #鎴愬姛榪愯 鍚?br /> 2009-12-20 23:31:31,796 WARNING MoinMoin.log:139 using logging configuration read from built-in fallback in MoinMoin.log module!<br /> <br /> 2009-12-20 23:31:32,515 INFO werkzeug:106  * Running on http://192.168.1.100:8080/<br /> <br /> <br /> 涓浜涚畝鍗曠殑璇硶浠嬬粛銆庡叾涓?HelpOnDrawings 鐨勫姛鑳?鏈?#8220;鎯婅壋”鐨勬晥鏋滐紒錛佸懙鍛碉紝鑷繁鎼緩涓嚜宸辯殑wiki 鍑烘潵 鐪嬪惂銆?br /> <ul> <li><a >HelpContents</a></li> <li><a >HelpForBeginners</a></li> <li><a >HelpForUsers</a></li> <li><a >HelpIndex</a></li> <li><a >HelpOnAccessControlLists</a></li> <li><a >HelpOnActions</a></li> <li><a >HelpOnActions/AttachFile</a></li> <li><a >HelpOnAdministration</a></li> <li><a >HelpOnAdmonitions</a></li> <li><a >HelpOnAuthentication</a></li> <li><a >HelpOnAuthentication/ExternalCookie</a></li> <li><a >HelpOnAutoAdmin</a></li> <li><a >HelpOnCategories</a></li> <li><a >HelpOnComments</a></li> <li><a >HelpOnConfiguration</a></li> <li><a >HelpOnConfiguration/EmailSupport</a></li> <li><a >HelpOnConfiguration/Example/AideDeParamétrage/WikiEnLangueFrançaise</a></li> <li><a >HelpOnConfiguration/FileAttachments</a></li> <li><a >HelpOnConfiguration/SecurityPolicy</a></li> <li><a >HelpOnConfiguration/SupplementationPage</a></li> <li><a >HelpOnConfiguration/SurgeProtection</a></li> <li><a >HelpOnConfiguration/UserPreferences</a></li> <li><a >HelpOnCreoleSyntax</a></li> <li><a >HelpOnDictionaries</a></li> <li><a >HelpOnDrawings</a></li> <li><a >HelpOnEditLocks</a></li> <li><a >HelpOnEditing</a></li> <li><a >HelpOnEditing/SubPages</a></li> <li><a >HelpOnFormatting</a></li> <li><a >HelpOnGraphicalEditor</a></li> <li><a >HelpOnGroups</a></li> <li><a >HelpOnHeadlines</a></li> <li><a >HelpOnImages</a></li> <li><a >HelpOnLanguages</a></li> <li><a >HelpOnLinking</a></li> <li><a >HelpOnLinking/NotesLinks</a></li> <li><a >HelpOnLists</a></li> <li><a >HelpOnLogin</a></li> <li><a >HelpOnMacros</a></li> <li><a >HelpOnMacros/EmbedObject</a></li> <li><a >HelpOnMacros/Include</a></li> <li><a >HelpOnMacros/MailTo</a></li> <li><a >HelpOnMacros/MonthCalendar</a></li> <li><a >HelpOnMoinCommand</a></li> <li><a >HelpOnMoinCommand/ExportDump</a></li> <li><a >HelpOnMoinWikiSyntax</a></li> <li><a >HelpOnNavigation</a></li> <li><a >HelpOnNotification</a></li> <li><a >HelpOnOpenIDProvider</a></li> <li><a >HelpOnPackageInstaller</a></li> <li><a >HelpOnPageCreation</a></li> <li><a >HelpOnPageDeletion</a></li> <li><a >HelpOnParsers</a></li> <li><a >HelpOnParsers/ReStructuredText</a></li> <li><a >HelpOnParsers/ReStructuredText/RstPrimer</a></li> <li><a >HelpOnProcessingInstructions</a></li> <li><a >HelpOnRules</a></li> <li><a >HelpOnSearching</a></li> <li><a >HelpOnSessions</a></li> <li><a >HelpOnSlideShows</a></li> <li><a >HelpOnSlideShows/000 Introduction</a></li> <li><a >HelpOnSlideShows/100 Creating the slides</a></li> <li><a >HelpOnSlideShows/900 Last but not least: Running your presentation</a></li> <li><a >HelpOnSmileys</a></li> <li><a >HelpOnSpam</a></li> <li><a >HelpOnSpellCheck</a></li> <li><a >HelpOnSubscribing</a></li> <li><a >HelpOnSuperUser</a></li> <li><a >HelpOnSynchronisation</a></li> <li><a >HelpOnTables</a></li> <li><a >HelpOnTemplates</a></li> <li><a >HelpOnThemes</a></li> <li><a >HelpOnUpdating</a></li> <li><a >HelpOnUpdatingPython</a></li> <li><a >HelpOnUserHandling</a></li> <li><a >HelpOnUserPreferences</a></li> <li><a >HelpOnVariables</a></li> <li><a >HelpOnXapian</a></li> <li><a >HelpOnXmlPages</a></li> <li><a >HelpTemplate</a></li> </ul> <br /> <br /> <br /> <br /> <br /> <br /> <img src ="http://www.tkk7.com/Skynet/aggbug/306749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Skynet/" target="_blank">鍒樺嚡姣?/a> 2009-12-20 23:34 <a href="http://www.tkk7.com/Skynet/archive/2009/12/20/306749.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍜?涓氬姟璁ㄨ鐨?鎺ㄨ崘http://www.tkk7.com/Skynet/archive/2009/12/11/305591.html鍒樺嚡姣?/dc:creator>鍒樺嚡姣?/author>Fri, 11 Dec 2009 08:20:00 GMThttp://www.tkk7.com/Skynet/archive/2009/12/11/305591.htmlhttp://www.tkk7.com/Skynet/comments/305591.htmlhttp://www.tkk7.com/Skynet/archive/2009/12/11/305591.html#Feedback2http://www.tkk7.com/Skynet/comments/commentRss/305591.htmlhttp://www.tkk7.com/Skynet/services/trackbacks/305591.html
瀹氫箟錛?
鐏扮緤緹?nbsp;  錛堟棤涓昏鐨勭敤鎴風兢浣擄級
榛戠緤   錛?瀵硅嚜宸遍渶瑕佷粈涔堟湁鏄庣‘鐨勮璇嗭紝鎴戜滑涓鑸О涓轟笓瀹剁敤鎴楓?nbsp; 錛?br />

1. 鍖哄垎 鐏幫紙鏃犱富瑙侊級 榛?緹婄兢

2.
user session 鍏寵仈 #褰?鍏寵仈鍏崇郴緇存姢浣跨敤 鐢ㄦ埛鐨勪細璇滻D錛堢敤鎴蜂笉鍚屽績鎯咃紝璧峰鍦ㄦ暟鎹腑灝卞簲璇ユ槸涓嶅悓鍒嗙被鐨勶級
user 鎺ㄨ崘         # 鑰屾帹鑽愬嚭浜у搧 榪樻槸 璺?鐢ㄦ埛鍞竴緙栧彿鏈夊叧
#鍦ㄦ帹鑽愪腑闇瑕佹弿榪?nbsp; 鐢ㄦ埛鐨勫瑙掑害 闂

3.
铔姏鎺ㄨ崘錛?鍏ㄦ暟鎹?錛涙弿榪板垵鏈熸竻媧楀悗鐨勬暟鎹?錛?閫傚悎 浜у搧鍏寵仈 
娓呮礂鍚庢湡鐨勬暟鎹紙鍖呭惈鐢ㄦ埛澶氱淮搴︽弿榪幫級 閫傚悎   鐢ㄦ埛鍏寵仈


4.
涓撳璺熼殢鎺ㄨ崘
鎻忚堪錛?br />   鐢ㄦ埛鍒嗙被 鎵懼埌榛戠壞緹? 
  鎵懼埌 涓緹ょ伆緇電緤 鍜?涓鍙粦緇電緤鐨勫叧鑱斿叧緋?br />   璁?涓緹ょ伆緇電緤 鍙互鐪?榛戠壞緹?鍔ㄤ綔





]]>
鍚屼簨鎺ㄨ崘鐨?閿葷偧鏂規硶http://www.tkk7.com/Skynet/archive/2009/12/11/305535.html鍒樺嚡姣?/dc:creator>鍒樺嚡姣?/author>Fri, 11 Dec 2009 03:52:00 GMThttp://www.tkk7.com/Skynet/archive/2009/12/11/305535.htmlhttp://www.tkk7.com/Skynet/comments/305535.htmlhttp://www.tkk7.com/Skynet/archive/2009/12/11/305535.html#Feedback0http://www.tkk7.com/Skynet/comments/commentRss/305535.htmlhttp://www.tkk7.com/Skynet/services/trackbacks/305535.html

1錛岃礋閲嶆繁韞詫紝浠板崸璧峰潗錛屾參璺戯紝涓昏緇冧範蹇冭偤鍔熻兘錛堣吙閮ㄩ敾鐐煎緢閲嶈錛屽鏋滄繁韞插畬浜嗘病浣撳姏錛屾參璺戝彲浠ユ敼鎴愭參璧版斁鏉撅級

2錛屽崸鎺紝浠板崸椋為笩錛岀珯绔嬮楦燂紝浠板崸璧峰潗錛屾參璺戯紝涓昏緇冧範鑳擱儴鍜岃偐閮紙椋為笩灝辨槸渚т婦錛屼話鍗х殑鏃跺欑敤鐨勬槸鑳哥殑鍔涢噺錛岀珯绔嬫椂鐢ㄧ殑鏄偐錛?br />
3錛屽紩浣撳悜涓婏紝鍒掕埞錛屾洸鑷傦紝涓昏緇冧範鑳岄儴鍜岃兂鑶婏紝鏈鍚庡姞涓婂浐瀹氱殑欏圭洰錛氫話鍗ц搗鍧愬拰鎱㈣窇鏀炬澗


1鐨勬秷鑰楁渶澶э紝瑕佽嚜宸辯姸鎬佹渶濂界殑鏃跺欏幓
2涓昏鏄粌涔犲拰“鎺紝涓?#8221;鐩稿叧鐨勮倢緹?br /> 3鏄?#8220;鎷夛紝鏀?#8221;鐩稿叧鐨勮倢緹?br />
鑰屼笖鏈変釜鍘熷垯錛屽氨鏄厛緇冨ぇ欏圭洰錛屽啀緇冨皬欏圭洰銆?br />

 娣辮共銆佸崸鎺ㄣ佸紩浣撳悜涓婏紝榪?涓槸鏈鍩烘湰鐨勶紝鍒殑鍏跺疄閮藉彲鏈夊彲鏃?br /> 鍙﹀錛岄傚綋鎱㈣窇涔熸槸蹇呰鐨勶紝鏄緢濂界殑鏀炬澗鍜屾湁姘ц繍鍔紝淇冭繘浠h阿銆傚綋鐒訛紝濡傛灉鏈夋潯浠跺彲浠ュ幓鎴峰璺戯紝瀹佸彲璺戦┈璺紝涔熷埆鍦ㄥ仴韜埧閲岃窇錛岀┖姘斾笉鐞嗘兂

鍋氬姩浣滀篃鏄寰簭娓愯繘錛屾瘡嬈′粠寰堣交鐨勯噸閲忓紑濮嬶紝閫愭鍔犲ぇ璐熻嵎





]]>
璺熸垜涓璧峰 - 綆楁硶瀵艱 - 綰挎ф椂闂存帓搴?/title><link>http://www.tkk7.com/Skynet/archive/2009/12/08/305156.html</link><dc:creator>鍒樺嚡姣?/dc:creator><author>鍒樺嚡姣?/author><pubDate>Tue, 08 Dec 2009 06:21:00 GMT</pubDate><guid>http://www.tkk7.com/Skynet/archive/2009/12/08/305156.html</guid><wfw:comment>http://www.tkk7.com/Skynet/comments/305156.html</wfw:comment><comments>http://www.tkk7.com/Skynet/archive/2009/12/08/305156.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/Skynet/comments/commentRss/305156.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Skynet/services/trackbacks/305156.html</trackback:ping><description><![CDATA[<strong>涓嬮潰浠嬬粛鐨勬帓搴忛兘涓猴細闈炴瘮杈冩帓搴忔硶</strong><br /> <br /> 榪欓噷涓漢璁や負鍦ㄦ煇浜涚壒瀹氱殑鍦版柟闈炴瘮杈冩帓搴忕殑閫熷害闈炲父鏄庢樉錛?br /> 姣斿 錛?瀵瑰緟鎺掓暟鎹腑鏈夐『搴忓垎綾伙紝浣跨敤楦藉發鎬諱綋鍒嗙被錛岀劧鍚庡涓嶅悓綾誨埆鐨勫緟鎺掑皬鏁版嵁闆嗗悎閲囩敤 鎻掑叆錛屽揩鎺掔瓑鎺掑簭鏂瑰紡<br /> <br /> <br /> Counting sort 錛氳鏁版帓搴?br /> 鎻忚堪錛氳凱浠e緟鎺掑簭鏁扮粍鍑哄厓绱爔錛岀‘瀹氬皬浜庢鍏冪礌[z]涓暟錛岀劧鍚庢妸x鏀懼埌瀹冨湪鐨勬渶緇堣緭鍑烘暟緇刐z]涓娿?br /> 鐗規э細涓庡緟鎺掑兼湁鍏籌紱紼沖畾鐨勬帓搴忕畻娉曪紱寰呮帓搴忔暟鎹姹傝繃浜庝弗鏍鹼紝鏃犲疄闄呯敤澶勶紱<br /> 綆楁硶鐨勬楠ゅ涓嬶細<br />    1. 鎵懼嚭寰呮帓搴忕殑鏁扮粍涓渶澶у拰鏈灝忕殑鍏冪礌<br />    2. 緇熻鏁扮粍涓瘡涓間負i鐨勫厓绱犲嚭鐜扮殑嬈℃暟錛屽瓨鍏ユ暟緇凜鐨勭i欏?br />    3. 瀵規墍鏈夌殑璁℃暟绱姞錛堜粠C涓殑絎竴涓厓绱犲紑濮嬶紝姣忎竴欏瑰拰鍓嶄竴欏圭浉鍔狅級<br />    4. 鍙嶅悜濉厖鐩爣鏁扮粍錛氬皢姣忎釜鍏冪礌i鏀懼湪鏂版暟緇勭殑絎珻(i)欏癸紝姣忔斁涓涓厓绱犲氨灝咰(i)鍑忓幓1<br /> <br /> <br /> Radix sort錛氬熀鏁版帓搴?br /> 鎻忚堪錛氬皢鎵鏈夊緟姣旇緝鏁板?姝f暣鏁?緇熶竴涓哄悓鏍風殑鏁頒綅闀垮害,鏁頒綅杈冪煭鐨勬暟鍓嶉潰琛ラ浂. 鐒跺悗, 浠庢渶浣庝綅寮濮? 渚濇榪涜涓嬈℃帓搴?榪欐牱浠庢渶浣庝綅鎺掑簭涓鐩村埌鏈楂樹綅鎺掑簭瀹屾垚浠ュ悗, 鏁板垪灝卞彉鎴愪竴涓湁搴忓簭鍒?<br /> 鎺掑簭鏂瑰紡錛歀SD 鐢卞彸鍚戝乏鎺掞紱MSD 鐢卞乏鍚戝彸鎺?br /> 鐗規э細闈炴瘮杈冩帓搴忥紱寰呮帓鏁版嵁闇瑕佺粺涓鏍煎紡錛?br /> 鍋囪闇鎺掑簭鏁板垪鐨勫彇鍊艱寖鍥翠粠1...k,鎴戜滑浜庢槸寤轟竴涓狵+1鍏冪殑鏁扮粍 a[]錛屽茍璧嬪垵鍊間負0錛岀劧鍚庝究寮濮嬫帓搴忓伐浣滐細<br /> 綆楁硶鐨勬楠ゅ涓嬶細<br />    1. 鎸夎緭鍏ラ『搴忚鍏ユ暟鍒楋紝濡傛灉鎵璇葷殑鍏冪礌涓篿(1<=i<=k),鎴戜滑灝卞皢a[i]鐨勫煎姞涓錛岃繖鏍風洿鍒拌瀹屾墍鏈夌殑鍏冪礌銆?br />    2. 璇誨嚭鍏冪礌騫舵帓搴忥細鎴戜滑閬嶅巻鏁翠釜鏁扮粍錛屽鏋渁[i]=j(j>=0),鎴戜滑灝辮緭鍑簀嬈(琛ㄧず鍏冪礌i鍦ㄥ師鍏堟暟鍒椾腑鍑虹幇浜唈嬈?,榪欐牱杈撳嚭鐨勫簭鍒楀氨鏄凡鎺掑簭鐨勩?br />    3. 鐢變簬涓鑸帓搴忕畻娉曟秹鍙婂埌鍏冪礌涔嬮棿鐨勬瘮杈冿紝濡傛灉鍖栨垚姣旇緝鏍戝彲浠ョ煡閬擄紝榪欐牱鐨勬帓搴忕畻娉曞鏉傚害鐨勪笅闄愭槸O(N*lnN),鑰岃鏁版帓搴忔病鏈夋瘮杈冨厓绱狅紝鎵浠ユ墍闇鎺掑簭鏃墮棿灝卞皯浜嗭紝鎴戜滑鍙互鐪嬪埌璁℃暟鎺掑簭鐨勫鏉傚害涓篛(n*k)錛屽叾涓璳錛坘鐨勫畾涔夊悓涓婏級涓哄悎騫舵帓鍒楁墍闇鐨勬椂闂達紝鏄釜甯告暟銆?br />    4. 姝ょ畻娉曢傚悎鎵闇鎺掑垪鐨勫厓绱犲彇鍊艱寖鍥翠笉澶х殑鎯呭喌涓嬶紝鍚﹀垯浼氶犳垚絀洪棿鐨勬秷鑰楋紝姣斿錛屼竴鍏?00涓厓绱狅紝鍏跺彇鍊艱寖鍥翠粠1-100000錛屾樉鐒惰繖涓椂鍊欑敤鍩烘暟鎺掑簭鏄笉鍚堥傜殑銆?br /> <br /> <br /> <br /> Bucket sort錛氭《鎺掑簭<br /> 鎻忚堪錛氬伐浣滅殑鍘熺悊鏄皢闃靛垪鍒嗗埌鏈夐檺鏁伴噺鐨勬《瀛愰噷銆傛瘡涓《瀛愬啀涓埆鎺掑簭錛堟湁鍙兘鍐嶄嬌鐢ㄥ埆鐨勬帓搴忕畻娉曟垨鏄互閫掑洖鏂瑰紡緇х畫浣跨敤妗舵帓搴忚繘琛屾帓搴忥級銆?br /> 妗舵帓搴忎互涓嬪垪紼嬪簭榪涜錛?br />    1. 璁劇疆涓涓畾閲忕殑闃靛垪褰撲綔絀烘《瀛愩?br />    2. 瀵昏搴忓垪錛屽茍涓旀妸欏圭洰涓涓竴涓斁鍒板搴旂殑妗跺瓙鍘匯?br />    3. 瀵規瘡涓笉鏄┖鐨勬《瀛愯繘琛屾帓搴忋?br />    4. 浠庝笉鏄┖鐨勬《瀛愰噷鎶婇」鐩啀鏀懼洖鍘熸潵鐨勫簭鍒椾腑銆?br /> <br /> <br /> <br /> Pigeonhole sort錛氶附宸㈡帓搴?br /> 鎻忚堪錛氭槸涓縐嶆椂闂村鏉傚害涓篛(n)涓斿湪涓嶅彲閬垮厤閬嶅巻姣忎竴涓厓绱犲茍涓旀帓搴忕殑鎯呭喌涓嬫晥鐜囨渶濂界殑涓縐嶆帓搴忕畻娉? 浣嗗畠鍙湁鍦ㄥ樊鍊?鎴栬呭彲琚槧灝勫湪宸?寰堝皬鐨勮寖鍥村唴鐨勬暟鍊兼帓搴忕殑鎯呭喌涓嬪疄鐢?<br /> 綆楁硶鐨勬楠ゅ涓嬶細涓庢《鎺掑悓<br /> <br /> <br /> <br /> <img src ="http://www.tkk7.com/Skynet/aggbug/305156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Skynet/" target="_blank">鍒樺嚡姣?/a> 2009-12-08 14:21 <a href="http://www.tkk7.com/Skynet/archive/2009/12/08/305156.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>linux date 浣跨敤http://www.tkk7.com/Skynet/archive/2009/12/07/305016.html鍒樺嚡姣?/dc:creator>鍒樺嚡姣?/author>Mon, 07 Dec 2009 08:14:00 GMThttp://www.tkk7.com/Skynet/archive/2009/12/07/305016.htmlhttp://www.tkk7.com/Skynet/comments/305016.htmlhttp://www.tkk7.com/Skynet/archive/2009/12/07/305016.html#Feedback0http://www.tkk7.com/Skynet/comments/commentRss/305016.htmlhttp://www.tkk7.com/Skynet/services/trackbacks/305016.html date demo:
瀹炰緥:
$
>date
Mon Dec  
7 15:43:39 CST 2009

#鏍煎紡鍖栬緭鍑?/span>
$> date +"%Y-%m-%d"
2009-12-07

#鏃墮棿娓歌蛋 褰撳墠鏃墮棿 2009-12-07
# year , month , day ,hour , minute,second  - ago
#鏄ㄥぉ杈撳嚭

$> date  -"1 day ago" +"%Y-%m-%d"
2009-12-06

#2縐掑悗杈撳嚭
$> date  -"2 second" +"%Y-%m-%d %H:%M.%S"
2009-12-07 15:50.04

#浼犺涓殑 1234567890 縐?/span>
$>date -"1970-01-01  1234567890 seconds"  +"%Y-%m-%d %H:%m:%S"
2009-02-13 23:02:30

#鍏朵粬鏍煎紡鐨勮漿鎹?/span>
date -"$(echo "03/Nov/2009 11:04:28" |perl -ne 'print "$2 $1 $3 $4\n" if /(.*?)"/(.*?)"/(.*?) (.*)/;') " +%Y-%m-%d
2009-11-03

#鏅?nbsp;杞牸寮?/span>
$> date -"2009-12-12" +"%Y/%m/%d %H:%M.%S"
2009/12/12 00:00.00

#apache 鏍煎紡杞崲
$>date  -"Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
2009-12-05 00:00.37

#鏍煎紡杞崲 鍚庢椂闂?nbsp;娓歌蛋
$>date  -"Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
2007-12-05 00:00.37


#鏃墮棿宸?br /> #涓灝忔椂 3600
#涓澶?nbsp;86400 縐?/span>
$>st=$(date  -"Dec 5, 2009 12:00:37 AM 1 day ago 1 hour ago " +"%s")
$
>et=$(date  -"Dec 5, 2009 12:00:37 AM" +"%s")
$
>echo "鏃墮棿宸?[($et-$st)/86400]澶╋紝$[($et-$st)/3600%24]灝忔椂"
鏃墮棿宸?澶╋紝1灝忔椂





date --help
Usage: date [OPTION] [+FORMAT]
  or
:  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current 
time in the given FORMAT, or set the system date.

  
-d, --date=STRING         display time described by STRING, not `now'
  -f, --file=DATEFILE       like --date once for each line of DATEFILE
  -r, --reference=FILE      display the last modification time of FILE
  -R, --rfc-2822            output date and time in RFC 2822 format
      --rfc-3339=TIMESPEC   output date and time in RFC 3339 format.
                            TIMESPEC=`date
', `seconds', or `ns' for
                            date and 
time to the indicated precision.
  
-s, --set=STRING          set time described by STRING
  
-u, --utc, --universal    print or set Coordinated Universal Time
      
--help     display this help and exit
      
--version  output version information and exit
















]]>
緇欒嚜宸辯殑 鍥劇墖澶勭悊宸ュ叿 (py2exe)http://www.tkk7.com/Skynet/archive/2009/12/07/305005.html鍒樺嚡姣?/dc:creator>鍒樺嚡姣?/author>Mon, 07 Dec 2009 07:12:00 GMThttp://www.tkk7.com/Skynet/archive/2009/12/07/305005.htmlhttp://www.tkk7.com/Skynet/comments/305005.htmlhttp://www.tkk7.com/Skynet/archive/2009/12/07/305005.html#Feedback0http://www.tkk7.com/Skynet/comments/commentRss/305005.htmlhttp://www.tkk7.com/Skynet/services/trackbacks/305005.html
宸ュ叿涓?nbsp; dist/myImg.exe


宸ュ叿浣跨敤:
鍦?dist 涓?br /> myImg.exe Ratio  c:/闇瑕佺瓑姣斿帇緙╁浘鐗?*.jpg  d:/絳夋瘮鍚庤礬寰?nbsp;  絳夋瘮嬈緒idth  絳夋瘮楂榟eight
myImg.exe Watermark c:/姘村嵃鍥劇墖/x.png  c:/闇瑕佸姞姘村嵃鍥劇墖/*.jpg  d:/娣誨姞姘村嵃鍚庡浘鐗?nbsp;  鍔犳按鍗皐idth澶?nbsp; 鍔犳按鍗癶eight澶?br />
絳夋瘮鍘嬬緝瀹炰緥:
myImg.exe Ratio  
    "C:"Documents and Settings"lky"My Documents"My Dropbox"tools"img"src"python"dist"test"img"*.jpg"
    "C:"Documents and Settings"lky"My Documents"MyDropbox"tools"img"src"python"dist"test"toimg2"
    600 400
緇撴灉鍦?nbsp; ../dist"test"toimg  鐩綍涓?鐢熸垚 絳夋瘮鍥劇墖 testratio_600_400.jpg


姘村嵃娣誨姞瀹炰緥:
myImg.exe Watermark
    "C:"Documents and Settings"lky"My Documents"My Dropbox"tools"img"src"python"dist"test"img"logo.png"   
    "C:"Documents and Settings"lky"My Documents"My Dropbox"tools"img"src"python"dist"test"toimg2"*.jpg"
    "C:"Documents and Settings"lky"My Documents"My Dropbox"tools"img"src"python"dist"test"toimg3"
    100 220
緇撴灉鍦?nbsp; ../dist"test"toimg3  鐩綍涓?鐢熸垚 絳夋瘮鍥劇墖 test_ratio_600_400_watermark_100_220.jpg



瀹夎 python PIL 鍖?br /> 鍜屽畨瑁?python py2exe

宸ュ叿鑴氭湰 py


宸ュ叿緙栬瘧榪囩▼:
python setup.py py2exe



import sys

def imgRatio(imgpath,tpath='.',width=600,height=400):
    
import Image,os
    im 
= Image.open( imgpath )
    im.thumbnail( (width,height) )
    imgpath 
= os.path.split(imgpath)[1]
    
if not os.path.exists(tpath) : os.makedirs(tpath)
    im.save( tpath
+'/'+imgpath.split('.')[0]+'_ratio_'+str(width)+'_'+str(height)+'.jpg' )


def imgWatermark(imgwate,imgpath,sw=100,sh=50,tpath='.'):
    
import Image,os
    baseim 
= Image.open( imgpath )
    floatim 
= Image.open( imgwate )
    baseim.paste( floatim, (sw,sh ) )
    imgpath 
= os.path.split(imgpath)[1]
    
if not os.path.exists(tpath) : os.makedirs(tpath)
    baseim.save( tpath
+'/'+imgpath.split('.')[0]+'_watermark_'+str(sw)+'_'+str(sh)+'.jpg' )
    

args 
= sys.argv
import glob,os

# Ratio  /path/*.jpg  /tpath   width  height  
if args[1== 'Ratio' :
    
for img in glob.glob(args[2]) :
        imgRatio(os.path.abspath(img),args[
3],int(args[4]),int(args[5]))
# Watermark /path/x.png  /path/*.jpg  /tpath   width  height 
if args[1== 'Watermark' :
    
for img in glob.glob(args[3]) :
        imgWatermark(args[
2],img,int(args[5]),int(args[6]),args[4])




py2exe
#!/usr/bin/python
#
 -*- coding: utf-8 -*-
#
  py2exe file
#
 1.install py2exe application
#
 2.python setup.py py2exe
from distutils.core import setup
import py2exe
setup(console
=['myImg.py'])




]]>
璺熸垜涓璧峰 - 綆楁硶瀵艱 - 蹇熸帓搴?/title><link>http://www.tkk7.com/Skynet/archive/2009/12/03/304668.html</link><dc:creator>鍒樺嚡姣?/dc:creator><author>鍒樺嚡姣?/author><pubDate>Thu, 03 Dec 2009 09:11:00 GMT</pubDate><guid>http://www.tkk7.com/Skynet/archive/2009/12/03/304668.html</guid><wfw:comment>http://www.tkk7.com/Skynet/comments/304668.html</wfw:comment><comments>http://www.tkk7.com/Skynet/archive/2009/12/03/304668.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Skynet/comments/commentRss/304668.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Skynet/services/trackbacks/304668.html</trackback:ping><description><![CDATA[<br /> # 蹇帓 鍜?鍒嗘不 寰堝儚 閮芥槸<strong>鍒嗚屾不涔?/strong> 錛屼絾浠栦滑鍗存槸 鐩稿弽鐨?鏂瑰紡鎺掑簭 錛?br /> 鍒嗘不 鏄兂鎷嗗垎瀹屾垚鍚庯紝鍚堝茍浠ユ湁搴忕殑灝忔榪涜 <strong>鎺掑簭</strong> 錛岃屽揩鎺掓槸鐩存帴鐢卞師濮嬬殑“鎷嗗垎”鏉?strong>鎺掑簭</strong> 銆?br /> <br /> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008000;">#</span><span style="color: #008000;">encoding=utf-8</span><span style="color: #008000;"><br /> #</span><span style="color: #008000;">浠?nbsp;澶?nbsp;鍒?nbsp;灝?/span><span style="color: #008000;"><br /> </span><span style="color: #0000ff;">def</span><span style="color: #000000;"> partition(A,p,r):<br />     tmp</span><span style="color: #000000;">=</span><span style="color: #000000;">A[p]<br />     </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> True :<br />         </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> p</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;"><</span><span style="color: #000000;">r </span><span style="color: #0000ff;">and</span><span style="color: #000000;"> A[p] </span><span style="color: #000000;">></span><span style="color: #000000;"> tmp : p</span><span style="color: #000000;">+=</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />         </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> r</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">></span><span style="color: #000000;">p </span><span style="color: #0000ff;">and</span><span style="color: #000000;"> A[r] </span><span style="color: #000000;"><=</span><span style="color: #000000;"> tmp : r</span><span style="color: #000000;">-=</span><span style="color: #000000;">1</span><span style="color: #000000;">    <br />     </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> A[p]</span><span style="color: #000000;"><=</span><span style="color: #000000;">A[r]: A[p],A[r]</span><span style="color: #000000;">=</span><span style="color: #000000;">A[r],A[p]<br />     </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> r</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;"><=</span><span style="color: #000000;">p : </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> p<br /> <br /> <br /> </span><span style="color: #0000ff;">def</span><span style="color: #000000;"> quickSort(A,p,r):<br />     </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> p</span><span style="color: #000000;"><</span><span style="color: #000000;">r:<br />         q</span><span style="color: #000000;">=</span><span style="color: #000000;">partition(A,p,r)<br />         quickSort(A,p,q)<br />         quickSort(A,q</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,r)<br /> <br /> A</span><span style="color: #000000;">=</span><span style="color: #000000;">[</span><span style="color: #000000;">9</span><span style="color: #000000;">,</span><span style="color: #000000;">61</span><span style="color: #000000;">,</span><span style="color: #000000;">7</span><span style="color: #000000;">,</span><span style="color: #000000;">14</span><span style="color: #000000;">,</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">7</span><span style="color: #000000;">,</span><span style="color: #000000;">667</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">,</span><span style="color: #000000;">6</span><span style="color: #000000;">,</span><span style="color: #000000;">8</span><span style="color: #000000;">]<br /> </span><span style="color: #0000ff;">print</span><span style="color: #000000;"> A<br /> quickSort(A,0,len(A)</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br /> </span><span style="color: #0000ff;">print</span><span style="color: #000000;"> A<br /> <strong># 緇撴灉 </strong></span><strong>[667, 61, 14, 9, 8, 7, 7, 6, 3, -1]</strong></div> <br /> <br /> <br /> 鍥捐В錛?br /> 涓嬈¤凱浠h繃紼嬫弿榪?錛堜粠灝忓埌澶э級錛?br /> 1. 浠?A[0] 涓哄垏鍒嗙偣 鐢ㄤ復鏃跺彉閲?璁板綍 榪欓噷鏄?<strong>鍒囧垎鐐?/strong> = [5] <br /> 2. 鍒嗗埆璧?2鏋氭寚閽?[鍒囧垎璧峰乏,鍙砞<br /> 3. 鍒嗗埆鍚戜腑闂?闈犳嫝 錛?褰撳乏鎸囬拡鎸囧悜鍊煎ぇ浜?鍒囧垎鐐?鍋滄 宸?錛?鍙蟲寚閽堟寚鍚戝?灝忎簬 鍒囧垎鐐?鍋滄 鍙?銆?br /> 4. 鍒ゆ柇 鏄惁鏄?nbsp; 鍋滄鐐?涓?宸﹀?灝忎簬 鍙沖?鏄細浜ゆ崲涓ゆ寚閽堝?錛?<br /> <img src="http://www.tkk7.com/images/blogjava_net/skynet/42926/qs.jpg" alt="" border="0" /><br /> <strong>絎竴嬈¤凱浠e悗 :  <br />   浠ュ垵濮嬪垎闅?[5]  灝卞凡緇忓垏鍒嗗ソ浜?灝忎簬 5 鐨勫乏 錛屽ぇ浜庣瓑浜? 鐨勫彸</strong><br /> <br /> <img src ="http://www.tkk7.com/Skynet/aggbug/304668.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Skynet/" target="_blank">鍒樺嚡姣?/a> 2009-12-03 17:11 <a href="http://www.tkk7.com/Skynet/archive/2009/12/03/304668.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://boyipark.com" target="_blank">国产偷窥女洗浴在线观看亚洲</a>| <a href="http://lemonbt.com" target="_blank">国产亚洲一区二区三区在线观看</a>| <a href="http://woaianli.com" target="_blank">黄色网址大全免费</a>| <a href="http://see13.com" target="_blank">亚洲夜夜欢A∨一区二区三区</a>| <a href="http://2121065.com" target="_blank">最近2019中文字幕免费大全5 </a>| <a href="http://eddiekidd.com" target="_blank">自拍偷自拍亚洲精品第1页</a>| <a href="http://0551dfcy.com" target="_blank">四虎国产成人永久精品免费</a>| <a href="http://an930.com" target="_blank">亚洲一区二区无码偷拍</a>| <a href="http://scycho.com" target="_blank">在线a亚洲v天堂网2019无码</a>| <a href="http://bjmyhfc.com" target="_blank">希望影院高清免费观看视频</a>| <a href="http://600c63.com" target="_blank">一区二区3区免费视频</a>| <a href="http://8hnbuk14.com" target="_blank">亚洲国产超清无码专区</a>| <a href="http://67f6.com" target="_blank">亚洲欧洲自拍拍偷精品 美利坚</a>| <a href="http://wkk3.com" target="_blank">18禁美女黄网站色大片免费观看</a>| <a href="http://yy6767.com" target="_blank">美女黄频免费网站</a>| <a href="http://wxzg66.com" target="_blank">亚洲日本视频在线观看</a>| <a href="http://hmjx-tape.com" target="_blank">国产精品亚洲不卡一区二区三区</a>| <a href="http://www9k832.com" target="_blank">黄+色+性+人免费</a>| <a href="http://6878vip.com" target="_blank">久久www免费人成看国产片</a>| <a href="http://323799.com" target="_blank">亚洲综合在线一区二区三区</a>| <a href="http://www-5453.com" target="_blank">亚洲国产成人一区二区三区</a>| <a href="http://350725.com" target="_blank">四虎成人免费观看在线网址</a>| <a href="http://gisdn.com" target="_blank">无码AV片在线观看免费</a>| <a href="http://zengzeyu.com" target="_blank">日本一区二区三区免费高清在线</a>| <a href="http://tzkanglong.com" target="_blank">亚洲另类自拍丝袜第1页</a>| <a href="http://cytanhuang.com" target="_blank">中文字幕一精品亚洲无线一区</a>| <a href="http://cqshangshu.com" target="_blank">成人无遮挡毛片免费看</a>| <a href="http://fense1.com" target="_blank">久久久免费精品re6</a>| <a href="http://fdsyjy.com" target="_blank">CAOPORN国产精品免费视频</a>| <a href="http://wlzp88.com" target="_blank">亚洲国产精品18久久久久久</a>| <a href="http://68996500.com" target="_blank">亚洲小说区图片区</a>| <a href="http://yeshenghuowang.com" target="_blank">亚洲人成网站在线观看播放</a>| <a href="http://chandou8.com" target="_blank">国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 </a>| <a href="http://baocaoluoli.com" target="_blank">自怕偷自怕亚洲精品</a>| <a href="http://sxwlhg.com" target="_blank">亚洲一级片免费看</a>| <a href="http://57gt.com" target="_blank">四虎永久精品免费观看</a>| <a href="http://imfakaixin.com" target="_blank">免费看国产精品3a黄的视频 </a>| <a href="http://imfever.com" target="_blank">日本不卡在线观看免费v</a>| <a href="http://niu44.com" target="_blank">色影音免费色资源</a>| <a href="http://wwwxue1888.com" target="_blank">免费日本一区二区</a>| <a href="http://6wss.com" target="_blank">baoyu116.永久免费视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>