2.遮蔽nginx/apache/php版本資訊
開啟 nginx.conf,在http 裡加上
server_tokens off;
3.tengine安裝trim filter模組
nginx.conf中events上方加入
dso
trim on;
trim_jscss on;
看下效果首頁減少2k
還有一點:trim_jscss開啟不一定適合全部**哦,開啟可能會影響js
4.nginx安裝lua-nginx-module模組
wget
tar zxf luajit-2.1.0-beta2.tar.gz
cd luajit-2.1.0-beta2
make prefix=/usr/local/luajit
make install prefix=/usr/local/luajit
wget
tar -xzvf v0.2.19.tar.gz
wget
tar -xzvf v0.10.2.tar.gz
# tell nginx's build system where to find luajit 2.1:
export luajit_lib=/usr/local/luajit/lib
export luajit_inc=/usr/local/luajit/include/luajit-2.1
nginx -v看下之前的安裝都帶了哪些引數
./configure (之前安裝的引數) --with-ld-opt="-wl,-rpath,/usr/local/luajit/lib" --add-module=/path/to/ngx_devel_kit --add-module=/path/to/lua-nginx-module
--add-module後引數路徑根據解壓路徑為準
make -j2
make install
驗證lua-nginx-module安裝是否成功
在nginx下配置
location /hello_lua
5.通過ngx-lua來統計nginx上的虛擬主機效能資料
用ngx-lua來做效能統計、甚至一些運營資料統計,都是非常好的選擇。
1.幾乎對原有專案**分離
2.效能佳
3.支援分不同虛擬主機統計, 同乙個虛擬主機下可以分不同的location統計
4.可以統計與query-times、request-time、status-code、speed相關的資料
因為基於ngx-lua所以需要先安裝環境,請移步nginx安裝lua-nginx-module模組
github這個專案前輩們已給**
使用方法就是在nginx.conf的http中配置加入
lua_shared_dict log_dict 5m;
lua_shared_dict result_dict 5m;
然後在入口nginx上配置
server
}記得配upstream,否則之後用到的統計有關於upstream的值是出不來的,這個我還要進一步確認下
然後可以再配乙個server
server
location /status
location /empty_dict
}配置好後,就可以通過如下命令獲取
curl ip_addr:8080/status
執行一段時間之後, 字典會變大. 可以通過如下介面清理
curl ip_addr:8080/empty_dict
--------------------------
key: funboxpower.com__upstream_time_10.0.3.32:8250_counter
0.375
key: funboxpower.com__upstream_time_10.0.3.32:8250_nb_counter
124key: funboxpower.com__upstream_time_10.0.4.93:8250_counter
0.131
key: funboxpower.com__upstream_time_10.0.4.93:8250_nb_counter
123key: funboxpower.com__upstream_time_10.20.12.49:8250_counter
0.081
key: funboxpower.com__upstream_time_10.20.12.49:8250_nb_counter
127key: funboxpower.com__query_counter
500key: funboxpower.com__request_time_counter
0.68
key: funboxpower.com__upstream_time_counter
0.683
key: funboxpower.com__upstream_time_10.20.12.59:8250_counter
0.096
key: funboxpower.com__upstream_time_10.20.12.59:8250_nb_counter
126key: funboxpower.com__bytes_sent_counter
81500
其中__用來分割虛擬主機(包含prefix)與後面的資料項,便於資料處理.
counter表示此值一直在累加
nb_counter表示次數
可以得到的資料報括: query次數 request_time bytes_sent upstream_time
其中upstream_time_10.20.12.49:8250_counter 表示到某個特定後端的upstream_time耗時累加
upstream_time_10.20.12.49:8250_nb_counter 表示到到某個特定後端的upstream_time次數累加
資料處理,delta不明白啥意思,先記錄
delta(bytes_sent_counter)/delta(query_counter) 得到就是這段時間的http傳輸速度
delta(upstream_time_10.20.12.49:8250_counter)/delta(upstream_time_10.20.12.49:8250_nb_counter) 得到的就是這個後端upstream_time的平均值
6.nginx下php-fpm防止跨站跨目錄安全設定
參考
7.記一次壓測引起的nginx負載均衡效能調優
nginx的最大連線數是worker num * worker_connections, 預設worker_connections是1024, 直接乾到10w就可以了
雖然我們在sysctl核心裡做了一些網路tcp**的優化,但那也趕不上壓力測試帶來的頻繁建立tcp的消耗。 果然在upstream加了keepalive
不需要重新建立socket或者發起connect()。這樣既省下建立連線時在握手的時間消耗,又可以避免tcp連線的slow start
golang的http模組貌似對http spdy支援不怎麼好, 要不然可以直接用**的tengine upstream spdy的方式連線後端server。 他的速度要比keepalive要好的多,畢竟省去了等待上次返回的結果的過程
8.參考
配置1.要想能記錄真實ip,需要修改後端機器的日誌格式,這裡假設後端也是一台nginx:
在後端配置檔案裡面加入這一段即可:
故障之前沒配置下面這段,訪問時候偶爾會出現504 gateway timeout,由於偶爾出現,所以不太好排查
proxy_connect_timeout 300s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_ignore_client_abort on;
安裝配置tengine
1 依賴gcc openssl devel pcre devel zlib devel 安裝 yum install gcc openssl devel pcre devel zlib devel 2 解壓tengine壓縮包,並進入目錄 3 configure prefix usr tengine...
tengine簡單安裝 Tengine 安裝流程
1,軟體準備 cd usr local src tar zxvf pcre 8.33.tar.gz tar zxvf openssl 1.0.1h.tar.gz tar jxvf jemalloc 3.5.0.tar.bz2 tar zxvf zlib 1.2.8.tar.gz wget c tar...
安裝Tengine和Tengine說明
什麼是tengine 官方幫助文件 tengine的安裝 新建tengine使用者組 groupadd r nginx useradd r g nginx m nginx 解壓安裝包 tar zxvf tengine 2.1.0.tar.gz安裝依賴 yum install gcc devel op...