溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

打點統計——1(nginx的配置)

發(fā)布時間:2020-06-22 18:54:04 來源:網絡 閱讀:787 作者:梁十八 欄目:編程語言

打點統計——1(nginx的配置)


需要統計的頁面都導入js統計代碼,根據要統計的信息訪問統計服務器api地址

要統計的內容舉例:

打點統計——1(nginx的配置)

(ip什么的就不上報了,交給nginx)

然而真實的統計代碼是要做容錯處理的,比如說一個頁面套一個頁面的時候會不會統計兩次,要不要加全局鎖,防止調用一次以后再調用統計多次的問題......


nginx并發(fā)性能很強勁,所以選用它


Nginx的405錯誤

絕大多數服務器,都不允許靜態(tài)文件響應POST請求(GET請求靜態(tài)文件是天經地義的),否則會返回HTTP/1.1 405 Method not allowed錯誤。

然而在前端開發(fā)中,前端開發(fā)工程師經常模擬后端請求,返回靜態(tài)數據來查看頁面效果,怎么辦?

目前有兩種方案解決:

方案一:修改配置文件nginx.conf(推薦)

在nginx.conf中,請求的靜態(tài)數據路徑中,添加如下語句error_page 405=200 $request_uri

location?~?\.(action|jsp)?{
????root?$testDataFold;
????error_page?405?=200?$request_uri;
}
方案二:修改nginx源碼編譯

找到文件ngx_http_static_module.c,然后找到下面代碼并注釋掉。

if?(r->method?&?NGX_HTTP_POST)?{
????return?NGX_HTTP_NOT_ALLOWED;
}

然后按照原來的編譯參數,重新編譯安裝nginx即可。

推薦方案一,簡單方便無副作用,^_^。




nginx.conf中按照方案一配置:

????#打點服務器配置(url訪問dig,顯示一個1*1像素的gif圖片)

????location = /dig {

????????empty_gif;

????????#絕大多數服務器,都不允許靜態(tài)文件響應post請求(get請求靜態(tài)文件是天經地義的),否則會返回HTTP/1.1 405 Method not allowed錯誤,然而在前端開發(fā)中,前端開發(fā)工程師經常模擬后端請求,返回靜態(tài)數據來查看頁面效果,怎么辦?這樣咯:

????????error_page 405 =200 $request_uri;

????}


訪問localhost/dig:

打點統計——1(nginx的配置)

(顯示一個1*1像素的gif圖片)


注意:同時要打開access_log保存訪問記錄、日志格式:

http {

? ? include? ? ? ?mime.types;

? ? default_type? application/octet-stream;

? ? log_format? main? '$remote_addr - $remote_user [$time_local] "$request" '

? ? ? ? ? ? ? ? ? ? ? '$status $body_bytes_sent "$http_referer" '

? ? ? ? ? ? ? ? ? ? ? '"$http_user_agent" "$http_x_forwarded_for"'; (日志的格式)

? ? access_log? logs/access.log? main;


以及一些nginx性能調優(yōu),可以根據機器的軟硬件配置來調整:

打點統計——1(nginx的配置)

gzip內置字典,重復越多,壓縮越好。gzip在傳輸的內容多的時候可以開啟節(jié)省傳輸數據大小,但在傳輸少量內容的時候反而沒多少用,還浪費cpu性能。


問題:

????問:為什么要用empty_gif來做接收返回響應?

????答:常識是要發(fā)送給api接口,返回json、狀態(tài)碼等。然而只要是json就是一長串的字符,在高并發(fā)的項目中,在高峰期壓力非常高,它要接收請求返回json,很難構造很小的響應。而且,打點服務器只要上報,不要返回(完全不返回也不行,三次握手需要response),所以用empty_gif來做極小的response。



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI