一個高性能的HTTP和反向代理服務器;
一個IMAP/POP3/SMTP代理服務器;
由lgor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發(fā);
源代碼以類BSD許可證的形式發(fā)布;
以穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。
2. 為什么選擇Nginx
Nginx是一個安裝非常的簡單,配置文件非常簡潔,Bug非常少的服務器。
每個worker的線程可以把一個cpu的性能發(fā)揮到極致。所以worker數(shù)和服務器的cpu數(shù)相等是最為適宜的。設少了會浪費cpu,設多了會造成cpu頻繁切換上下文帶來的損耗。
2. 模塊分類
load-balancer---負載均衡模塊。
./configure --prefix=/data/nginx --with-http_realip_module -
-with-http_sub_module --with-http_flv_module --with-
http_dav_module --with-http_gzip_static_module --with-
http_stub_status_module --with-http_addition_module --with-
http_ssl_module
2. 模塊化
該模塊是一個過濾器,通過將一個指定的字符串替換為另一個字符串來修改響應。
啟用ngx_http_flv_module支持(提供尋求內存使用基于時間的偏移量文件)。
啟用ngx_http_dav_module支持(增加PUT,DELETE,MKCOL:創(chuàng)建集合,COPY和MOVE方法)。
在線實時壓縮輸出數(shù)據(jù)流。
用于日常nginx運行狀態(tài)監(jiān)控,如:當前活動連接數(shù),請求、響應、空閑等連接數(shù)。
啟用ngx_http_addition_module支持(作為一個輸出過濾器,支持不完全緩沖,分部分響應請求)。
啟用ngx_http_ssl_module支持(使支持https請求,需已安裝openssl)。
啟用ipv6支持。
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info
2. events 模塊
Events {
use epoll; #Nginx事件驅動器模型:linux采用epoll類型, kqueue一般用于FreeBSD系統(tǒng)
worker_connections 8192; #Nginx每個進程的最大連接數(shù),即接收前端的最大請求數(shù)
}
http {
include mime.types; #文件擴展名與文件類型映射表
default_type application/octet-stream; #定義nginx能識別的網(wǎng)絡資源類型,默認為text/plain
log_format main $remote_addr|$remote_user|[$time_local]|"$request"|
$status|$body_bytes_sent|"$http_referer"|
"$http_user_agent"|"$http_x_forwarded_for"|
‘$upstream_addr|$upstream_response_time|$request_time’; #設置輸出日志格式,各參數(shù)之間采用豎線隔離,方便后期對日志檢索,設置為main類型
access_log logs/access.log main; #采用main類型來記錄access日志
server_tokens off; #隱藏nginx的版本信息
sendfile on; #開啟高效文件傳輸模式
keepalive_timeout 65; # http連接超時時間,經(jīng)觀察文件上傳一般在60s內完成
gzip on; #開啟文件壓縮,大幅提高頁面加載速度
}
server {
listen 8003;
#虛擬主機IPV4服務端口
listen [::]:8003 ;
#虛擬主機IPV6服務端口
server_name 10.113.158.219;
#虛擬主機名稱
server_name [2409:8062:0804::0:3:0:0066];
#虛擬主機對應IPV6名稱
location /iotportal {
#表示匹配訪問的目錄
proxy_buffer_size 256k;
#代理緩沖區(qū)大小
proxy_buffers 32 64k;
#代理緩沖區(qū)數(shù)量
proxy_busy_buffers_size 256k;
#同時傳輸?shù)娇蛻舳说腷uffer數(shù)量
#避免寫入磁盤
proxy_connect_timeout 120;
# nginx連接到后端服務器的連接超時時間
proxy_send_timeout 120;
#發(fā)送請求給upstream服務器的超時時間
proxy_read_timeout 240;
#從后端服務器讀超時時間
proxy_pass http://iotportal;
#被代理服務器的地址,包含傳輸協(xié)議、主機名稱或IP地址、端口號等要素
proxy_set_header Proxy-Client-IP
$remote_addr;
#代理服務器客戶端地址
proxy_set_header Host
$host:$server_port;
#轉發(fā)服務器地址及端口
}
location /api {…….}
location /dist {…….}
}
$remote_addr 客戶端地址 211.28.65.253
$remote_user 客戶端用戶名稱 --
$time_local 訪問時間和時區(qū) 18/Jul/2012:17:00:01 +0800
$request 請求的URI和HTTP協(xié)議 "GET /article-10000.html HTTP/1.1"
$http_host 請求地址,即瀏覽器中你輸入的地址(IP或域名) www.wang.com 218.205.252.13
$status HTTP請求狀態(tài) 200
$upstream_status upstream狀態(tài) 200
$body_bytes_sent 發(fā)送給客戶端文件內容大小 1547
$http_referer url跳轉來源 http://218.205.252.13:8003/iotportal/frm/template/cs
s/template-iot.css
$http_user_agent 用戶終端瀏覽器等信息
例如:瀏覽器、手機客戶端等 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;
$http_x_forwarded_for 當前端有代理服務器時
$upstream_addr 后臺upstream的地址,即真正提供服務的主機地址 218.205.252.13:8003
$request_time 整個請求的總時間 0.031
1. remote_addr字段統(tǒng)計分析
cat access.2020-10-27.log |grep -v "200" |awk -F | {print $5,$10} | sort | uniq -c |sort -n -r
分析結果:
48 499 10.113.158.216:28191
46 499 10.113.158.217:28191
6 404 10.113.158.217:28191
3 404 10.113.158.216:28191
2 500 10.113.158.216:28191
2 404 -
2 403 -
1
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/129338.html
摘要:前言拋開那些強大的功能,今天我們來部署下本地的開發(fā)環(huán)境。提升開發(fā)效率和質量是每位程序員必備的技能。這并不是一個非常認真的操作,請勿使用到生產(chǎn)環(huán)境。 showImg(https://segmentfault.com/img/bVbg72t?w=800&h=528); 前言 拋開Docker那些強大的功能,今天我們來部署下本地的開發(fā)環(huán)境。并寫上幾個腳本來提高開發(fā)效率。 本章以MacOs系統(tǒng)...
摘要:前言拋開那些強大的功能,今天我們來部署下本地的開發(fā)環(huán)境。提升開發(fā)效率和質量是每位程序員必備的技能。這并不是一個非常認真的操作,請勿使用到生產(chǎn)環(huán)境。 showImg(https://segmentfault.com/img/bVbg72t?w=800&h=528); 前言 拋開Docker那些強大的功能,今天我們來部署下本地的開發(fā)環(huán)境。并寫上幾個腳本來提高開發(fā)效率。 本章以MacOs系統(tǒng)...
摘要:各種日常命令一點一點學習總結生成中選出一列里不重復的值列名表名后臺執(zhí)行一個腳本,并且寫到文件中在配置的路由規(guī)則,的配置查看狀態(tài)打包為全系統(tǒng)設定為單用戶設定下,略有不同 各種日常命令一點一點學習總結 Git生成KEY ssh-keygen -t rsa -C [email protected] MySQL中選出一列里不重復的值 SELECT DISTINCT 列名 FROM...
摘要:各種日常命令一點一點學習總結生成中選出一列里不重復的值列名表名后臺執(zhí)行一個腳本,并且寫到文件中在配置的路由規(guī)則,的配置查看狀態(tài)打包為全系統(tǒng)設定為單用戶設定下,略有不同 各種日常命令一點一點學習總結 Git生成KEY ssh-keygen -t rsa -C [email protected] MySQL中選出一列里不重復的值 SELECT DISTINCT 列名 FROM...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20