tengine 常用配置

2021-09-20 23:21:32 字數 4396 閱讀 5324

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...