天天看點

Web伺服器那些招伺服器每天日志處理nginx的fast-cgi param如何估計單機可承受的線上數量nginx的access_logLinux核心更新xarg參數isuggest表現nginx的worker_processes該怎麼設定Get請求的Url長度限制

使用伺服器自帶的/etc/logrotate

配置檔案:

/etc/logrotate.d/nginx

比如nginx:

/usr/local/nginx/logs/access.log {

rotate 3

compress

delaycompress

daily

dateext

ifempty

maxage 3

sharedscripts

postrotate

/usr/bin/kill -usr1 `cat /var/run/nginx.pid`

endscript

}

<a href="http://blog.csdn.net/iiisan/article/details/1180419">http://blog.csdn.net/iiisan/article/details/1180419</a>

注意這裡的postrotate,發送一個usr1信号給nginx,這樣nginx收到這個信号就會重新擷取新的accesslog檔案的句柄了。否則nginx持有的檔案句柄有可能是錯誤的。

fastcgi_param release 1可以設定下

來區分是開發環境還是線上環境

代碼中可以使用$_server[‘release’]擷取

1 擷取機器記憶體

2 看每個php-fpm會占用多少記憶體,計算可以開多少個php-fpm

3 看每個php程序會占用多少時間

4 計算每秒一個php-fpm會處理多少請求

5 可以計算出單個機器可以處理多少請求

nginx的access_log必須設定off才會停止

如果什麼都沒有設定,它還是會記錄access_log

2.6.32比以前的版本對系統的穩定和性能提升有指數級的優化。是以建議低版本都更新到這個版本以上

問題:

echo a|xarg echo b

這樣會傳回b a

要想傳回a b就要這樣設定

echo a|xarg –i echo {} b

xarg就會代替大括号

對于前端有suggest的功能

千萬不要監聽onchange事件,當輸入框輸入一個鍵的時候就調用一次接口,這樣對後端壓力會很大。

應該使用settimeout或者setintval之類的方式,定期判斷輸入框是否有變化,然後再決定是否調用接口。

設定和cpu核數一樣

并且還需要設定nginx_worker_cpu_affinity

這裡有詳細的文章參考:

<a href="http://www.1990y.com/nginx-worker-process-affinity/comment-page-1/#comment-4973">http://www.1990y.com/nginx-worker-process-affinity/comment-page-1/#comment-4973</a>

其中nginx_worker_cpu_affinity如果不設定的話就是讓計算機自己判斷,其實效率和一般的也沒有什麼大的差別

http協定并沒有限制url長度

php沒有限制url長度

一般浏覽器限制url長度為2000位元組

apache限制url為8000位元組,在limitrequestline中設定

nginx對header的限制為large_client_header_buffers