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