溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

高并發(fā)下Nginx性能怎么優(yōu)化

發(fā)布時(shí)間:2021-10-29 17:06:44 來源:億速云 閱讀:147 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“高并發(fā)下Nginx性能怎么優(yōu)化”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

Nginx同Apache一樣都是一種WEB服務(wù)器。基于REST架構(gòu)風(fēng)格,以統(tǒng)一資源描述符(UniformResources ldentifier)URl或者統(tǒng)一資源定位符(Uniform Resources Locator)URL作為溝通依據(jù),通過HTTP協(xié)議提供各種網(wǎng)絡(luò)服務(wù)。

Apache的發(fā)展時(shí)期很長,而且是毫無爭議的世界第一大服務(wù)器。它有著很多優(yōu)點(diǎn):穩(wěn)定、開源、跨平臺(tái)等等。它出現(xiàn)的時(shí)間太長了,它興起的年代,互聯(lián)網(wǎng)產(chǎn)業(yè)遠(yuǎn)遠(yuǎn)比不上現(xiàn)在。所以它被設(shè)計(jì)為一個(gè)重量級(jí)的。它不支持高并發(fā)的服務(wù)器。在Apache上運(yùn)行數(shù)以萬計(jì)的并發(fā)訪問,會(huì)導(dǎo)致服務(wù)器消耗大量內(nèi)存sz操作系統(tǒng)對(duì)其進(jìn)行進(jìn)程或線程間的切換也消耗了大量的CPU資源,導(dǎo)致HTTP請(qǐng)求的平均響應(yīng)速度降低。

這些都決定了Apache不可能成為高性能WEB服務(wù)器,輕量級(jí)高并發(fā)服務(wù)器Nginx就應(yīng)運(yùn)而生了。

特點(diǎn)

是一個(gè)高性能的HTTP和反向代理web服務(wù)器,輕量級(jí)提供了IMAP/POP3/SMTP服務(wù)發(fā)布于2004年10月4日(第一個(gè)公開版本0.1.0 )Nginx的1.4.0穩(wěn)定版已經(jīng)于2013年4月24日發(fā)布C語言編寫Nginx是一個(gè)跨平臺(tái)服務(wù)器Nginx有自己的函數(shù)庫,并且除了zlib、PCRE和OpenSSL之外,標(biāo)準(zhǔn)模塊只使用系統(tǒng)C庫函數(shù)。

優(yōu)勢(shì)

占有內(nèi)存少(在3W并發(fā)連接中,開啟的10個(gè)nginx進(jìn)程消耗內(nèi)存大約150M)高并發(fā)能力強(qiáng)(官方測(cè)試能夠支撐5W并發(fā)連接,在實(shí)際生產(chǎn)環(huán)境中能到2-3W并發(fā)連接數(shù))簡單(配置文件通俗易懂)價(jià)格(免費(fèi)、開源)支持Rewriter重寫(能夠根據(jù)域名、URL的不同,將HTTP請(qǐng):求分到不同的后端服務(wù)器群組)內(nèi)置健康檢查(如果nginx后端有幾個(gè)服務(wù)宕機(jī)了,不會(huì)影響前端訪問,能自動(dòng)檢測(cè)服務(wù)狀態(tài))節(jié)省帶寬(支持GZIP壓縮,可以添加瀏覽器本地緩存的Header頭)
穩(wěn)定性高,反向代理,很少宕機(jī)中國大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等

功能:web服務(wù)器、輕量級(jí);負(fù)載、均衡;緩存;高并發(fā)

應(yīng)用場(chǎng)景:代理服務(wù)器;IP負(fù)載、靜態(tài)負(fù)載;動(dòng)靜分離;限流、健康監(jiān)控

安裝和命令

安裝:

sudo apt-get install nginx

查看版本

nginx -v                  
nginx version: nginx/1.18.0 (Ubuntu)

基本命令

# nginx的訪問頁面(welcome to nginx)具體所在位置
vi /usr/share/nginx/html/index.html
# 訪問IP
curl 192.168.100.111
# 關(guān)閉nginx進(jìn)程
nginx -s stop
# 啟動(dòng)nginx進(jìn)程
/usr/sbin/nginx          # yum安裝的nginx也可以使用         servic nginx start
# 檢查配置文件是否有誤
nginx –t
# 重新加載配置文件
nginx –s reload
# 查看日志
tail -f filename #顯示文件默認(rèn)10行,刷新顯示
# 例:tail -f /var/log/lvs-agent.log          tail -f /etc/nginx/nginx.conf
# 查看文件后幾行
tail -n 行數(shù) 文件名 例: tail -n 100 /var/log/aa.log
# 刪除網(wǎng)卡ip
ip addr del 192.168.11.5/32 dev lo (lo eth2 eth3)
# lvs清空所有集群服務(wù)
ipvsadm –C
# 獲取eth0網(wǎng)卡上的所掛的ip值
ip a|grep eth0|grep inet|awk ‘{print $2}'|cut -d “/” -f1
# 驗(yàn)證該ip或者網(wǎng)址是否通 可用返回200
curl -I -m 10 -o /dev/null -s -w %{http_code} 10.110.26.10:8080
# 后臺(tái)啟動(dòng)jar包
nohup java -jar /usr/sbin/項(xiàng)目名.jar >>/var/log/項(xiàng)目名.log 2>&1 &
# 查看上一個(gè)命令是否執(zhí)行成功 返回0執(zhí)行成功 其他不成
echo $?
# 查看nginx進(jìn)程是否啟動(dòng)。此命令用在代碼判斷nginx進(jìn)程是否啟動(dòng),如果只用ps aux | grep nginx 即使沒有啟動(dòng)也會(huì)用內(nèi)容返回,影響判斷
ps aux | grep nginx | greo –v grep

配置文件

nginx.conf

# nginx.conf
# 全局配置區(qū)
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
# 網(wǎng)絡(luò)事件配置區(qū)
events {
	worker_connections 768;
	# multi_accept on;
}
# HTTP模塊
http {
	##
	# HTTP 全局設(shè)置
	##
	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;
	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;
	include /etc/nginx/mime.types;
	default_type application/octet-stream;
	##
	# SSL 設(shè)置
	##
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;
	##
	# 日志設(shè)置
	##
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
	##
	# 資源壓縮設(shè)置
	##
	gzip on;	# 默認(rèn)開啟
	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
	##
	# 虛擬主機(jī)配置
	##
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

/etc/nginx/sites-enabled/*

server {	# 虛擬主機(jī)配置
	listen 80 default_server;	# 監(jiān)聽端口
	listen [::]:80 default_server;
	# SSL 配置
	#
	# listen 443 ssl default_server;
	# listen [::]:443 ssl default_server;
	#
	# Note: You should disable gzip for SSL traffic.
	# See: https://bugs.debian.org/773332
	#
	# Read up on ssl_ciphers to ensure a secure configuration.
	# See: https://bugs.debian.org/765782
	#
	# Self signed certs generated by the ssl-cert package
	# Don't use them in a production server!
	#
	# include snippets/snakeoil.conf;	
	# 數(shù)據(jù)緩存位置
	root /var/www/html;
	# Add index.php to the list if you are using PHP
	index index.html index.htm index.nginx-debian.html;	
	# 域名,可以有多個(gè)
	server_name _;	
	# 對(duì)/進(jìn)行反向代理
	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		# uwsgi_pass 127.0.0.1:8000;
		# include /etc/nginx/uwsgi_params;
		try_files $uri $uri/ =404;
	}
	# pass PHP scripts to FastCGI server
	#
	#location ~ \.php$ {
	#	include snippets/fastcgi-php.conf;
	#
	#	# With php-fpm (or other unix sockets):
	#	fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
	#	# With php-cgi (or other tcp sockets):
	#	fastcgi_pass 127.0.0.1:9000;
	#}
	# deny access to .htaccess files, if Apache's document root
	# concurs with nginx's one
	#
	#location ~ /\.ht {
	#	deny all;
	#}
}

代理模式和配置反向代理

正向代理(forward proxy) :

是一個(gè)位于客戶端(用戶A)和原始服務(wù)器(origin server)(目標(biāo)服務(wù)器)之間的服務(wù)器(代理服務(wù)器),為了從原始服務(wù)器取得內(nèi)容,客戶端向代理服務(wù)器發(fā)送一個(gè)請(qǐng)求并指定目標(biāo)(原始服務(wù)器),然后代理服務(wù)器向原始服務(wù)器轉(zhuǎn)交請(qǐng)求并將獲得的內(nèi)容返回給客戶端??蛻舳吮仨氁M(jìn)行一些特別的配置才能使用正向代理。一般情況下,如果沒有特別說明,代理技術(shù)默認(rèn)是指正向代理技術(shù)。

相當(dāng)于是一個(gè)職業(yè)中介,且客戶端和實(shí)際服務(wù)器不能溝通,客戶端知道他是中介

反向代理(reverse proxy)︰

和正向代理正好相反,對(duì)于客戶端而言它就像是原始服務(wù)器,并且客戶端不需要進(jìn)行任何特別的設(shè)置??蛻舳讼蚍聪虼淼拿臻g(name-space)中的內(nèi)容發(fā)送普通請(qǐng)求,接著反向代理將判斷向何處(原始服務(wù)器)轉(zhuǎn)交請(qǐng)求,并將獲得的內(nèi)容返回給客戶端,就像這些內(nèi)容原本就是它自己的一樣。

相當(dāng)于是一個(gè)買房和賣房的人,買房的時(shí)候相對(duì)于賣房的是一個(gè)買房的,賣房的時(shí)候相對(duì)于買房的是一個(gè)賣房的。
客戶端不知道他是一個(gè)代理服務(wù)器,服務(wù)器也認(rèn)為他只是客戶端而不是代理服務(wù)器

透明代理∶

透明代理的意思是客戶端根本不需要知道有代理服務(wù)器的存在,它改編你的requestfields(報(bào)文),并會(huì)傳送真實(shí)IP。注意,加密的透明代理則是屬于匿名代理,意思是不用設(shè)置使用代理了。透明代理實(shí)踐的例子就是時(shí)下很多公司使用的行為管理軟件

高并發(fā)下Nginx性能怎么優(yōu)化

# 反向代理默認(rèn)是關(guān)閉的
# upstream localhost是第三方模塊,均衡
upstream localhost {
	# 實(shí)際服務(wù)器
	server 192.168.136.133:8081;
	server 192.168.136.133:8081;
	server 192.168.136.133:8081;
} 
# 負(fù)載
server {
	listen 80	# 代理服務(wù)器的端口
	server_name localhost;
	location / {
		proxy_pass http://localhost;	# 將請(qǐng)求發(fā)送給其中一臺(tái)實(shí)際服務(wù)器
	}
}

負(fù)載均衡方法:

輪詢法(默認(rèn))

加權(quán)輪詢法(權(quán)重)

Fair

url_hash

源地址哈希法

最小連接法(least_conn)

動(dòng)靜分離

Nginx動(dòng)靜分離簡單來說就是把動(dòng)態(tài)跟靜態(tài)請(qǐng)求分開,不能理解成只是單純的把動(dòng)態(tài)頁面和靜態(tài)頁面物理分離

嚴(yán)格意義上說應(yīng)該是動(dòng)態(tài)請(qǐng)求跟靜態(tài)請(qǐng)求分開,可以理解成使用Nginx處理靜態(tài)頁面,Tomcat處理動(dòng)態(tài)頁面

動(dòng)靜分離從目前實(shí)現(xiàn)角度來講大致分為兩種:

  • 一種是純粹把靜態(tài)文件獨(dú)立成單獨(dú)的域名,放在獨(dú)立的服務(wù)器上,也是目前主流推崇的方案

  • 一種是動(dòng)態(tài)跟靜態(tài)文件混合在一起發(fā)布,通過nginx來分開

mkdir static # 存放靜態(tài)文件

server {	# 虛擬主機(jī)配置
	listen 80 default_server;	# 監(jiān)聽端口
	listen [::]:80 default_server;
	
	# 數(shù)據(jù)緩存位置
	root /var/www/html;

	# Add index.php to the list if you are using PHP
	index index.html index.htm index.nginx-debian.html;
	
	# 域名,可以有多個(gè)
	server_name _;
	
	# 對(duì)/進(jìn)行反向代理
	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		# uwsgi_pass 127.0.0.1:8000;
		# include /etc/nginx/uwsgi_params;
		try_files $uri $uri/ =404;
	}
	# 如果是這些文件后綴就去這里面找
	location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css) $ {
		root /static;
		expires 30d;	# 緩存有效期
	}
}

日志管理

日志格式

日志生成的到Nginx根目錄logs/access.log文件,默認(rèn)使用“main”日志格式,也可以自定義格式默認(rèn)“main”日志格式

og_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
$remote_addr:客戶端的ip地址(代理服務(wù)器,顯示代理服務(wù)ip)
$remote_user:用于記錄遠(yuǎn)程客戶端的用戶名稱(一般為“-”)
$time_local:用于記錄訪問時(shí)間和時(shí)區(qū)
$request:用于記錄請(qǐng)求的url以及請(qǐng)求方法
$status:響應(yīng)狀態(tài)碼,例如:200成功、404頁面找不到等。
$body_bytes_sent:給客戶端發(fā)送的文件主體內(nèi)容字節(jié)數(shù)

日志切割

nginx的日志文件沒有rotate功能

編寫每天生成一個(gè)日志,我們可以寫一個(gè)nginx日志切割腳本來自動(dòng)切割日志文件

  • 第一步就是重命名日志文件 (不用擔(dān)心重命名后nginx找不到日志文件而丟失日志。在你未重新打開原名字的日志文件前,nginx還是會(huì)向你重命名的文件寫日志,Linux是靠文件描述符而不是文件名定位文件 )

  • 第二步向nginx主進(jìn)程發(fā)送USR1信號(hào)
    nginx主進(jìn)程接到信號(hào)后會(huì)從配置文件中讀取日志文件名稱
    重新打開日志文件 (以配置文件中的日志名稱命名) ,并以工作進(jìn)程的用戶作為日志文件的所有者
    重新打開日志文件后,nginx主進(jìn)程會(huì)關(guān)閉重名的日志文件并通知
    工作進(jìn)程使用新打開的日志文件工作進(jìn)程立刻打開新的日志文件并關(guān)閉重名名的日志文件,然后你就可以處理舊的日志文件了。[或者重啟nginx服務(wù)]

nginx日志按每分鐘自動(dòng)切割腳本如下 :

新建shell腳本

高并發(fā)架構(gòu)分析

什么是高并發(fā)?

高并發(fā)(High Concurrency)是互聯(lián)網(wǎng)分布式系統(tǒng)架構(gòu)設(shè)計(jì)中必須考慮的因素之一,它通常是指,通過設(shè)計(jì)保證系統(tǒng)能夠同時(shí)并行處理很多請(qǐng)求。

高并發(fā)相關(guān)常用的一些指標(biāo)有響應(yīng)時(shí)間(Response Time),吞吐量(Throughput),每秒查詢率QPS (Query Per Second),并發(fā)用戶數(shù)等。

  • 響應(yīng)時(shí)間:系統(tǒng)對(duì)請(qǐng)求做出響應(yīng)的時(shí)間

  • 吞吐量:單位時(shí)間內(nèi)處理的請(qǐng)求數(shù)量。

  • QPS:每秒響應(yīng)請(qǐng)求數(shù)

如何提升系統(tǒng)的并發(fā)能力?

互聯(lián)網(wǎng)分布式架構(gòu)設(shè)計(jì),提高系統(tǒng)并發(fā)能力的方式,方法論上主要有兩種:垂直擴(kuò)展(ScaleUp)與水平擴(kuò)展(Scale Out)。

垂直擴(kuò)展:提升單機(jī)處理能力。垂直擴(kuò)展的方式又有兩種。

  • 增強(qiáng)單機(jī)硬件性能

  • 提升單機(jī)架構(gòu)性能

在互聯(lián)網(wǎng)業(yè)務(wù)發(fā)展非常迅猛的早期,如果預(yù)算不是問題,強(qiáng)烈建議使用“增強(qiáng)單機(jī)硬件性能”的方式提升系統(tǒng)并發(fā)能力,因?yàn)檫@個(gè)階段,公司的戰(zhàn)略往往是發(fā)展業(yè)務(wù)搶時(shí)間,而“增強(qiáng)單機(jī)硬件性能”往往是最快的方法。

不管是提升單機(jī)硬件性能,還是提升單機(jī)架構(gòu)性能,都有一個(gè)致命的不足:單機(jī)性能總是有極限的。所以互聯(lián)網(wǎng)分布式架構(gòu)設(shè)計(jì)高并發(fā)終極解決方案還是水平擴(kuò)展。

水平擴(kuò)展:只要增加服務(wù)器數(shù)量,就能線性擴(kuò)充系統(tǒng)性能。

服務(wù)器都有極限

三種方式實(shí)現(xiàn)

limit_conn_zone(限制連接流)

limit_req_zone(限制請(qǐng)求流)

ngx_http_upstream_module(后臺(tái)服務(wù)限制)

此處插上一個(gè)小工具:限制測(cè)試工具下載

yum install http-tools -y
key含義
Document Path測(cè)試的頁面
Document Length頁面的大小
Concurrency Level并發(fā)數(shù)量、并發(fā)用戶數(shù)
Time taken for tests測(cè)試耗費(fèi)總時(shí)間
Complete requests請(qǐng)求總量、并發(fā)連接數(shù)
Failed requests請(qǐng)求失敗的數(shù)量
Write errors錯(cuò)誤數(shù)量
Requests per second每秒鐘的請(qǐng)求量吞吐率
Time per request每次請(qǐng)求需要時(shí)間響應(yīng)時(shí)間

限制連接流

http {
	# binary_remote_addr:IP
	# zone=one:10m;申請(qǐng)一塊10M的空間存放連接的IP
	limit_conn_zone $binary_remote_addr zone=one:10m;
	
	server {
		# zone區(qū)域中每次放出10個(gè)連接nginx處理
		limit_conn one 10;
	}
}

限制請(qǐng)求流(限速)

http {
	# rate意思是每個(gè)連接每秒能發(fā)一個(gè)連接
	limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s;
	
	server {
		# brust:令牌,每次新增一個(gè),120個(gè)發(fā)完后會(huì)報(bào)錯(cuò)503
		limit_req zone=req_one brust=120;
	}
}

后臺(tái)服務(wù)限制

該模塊是提供了我們需要的后端限流功能的

該模塊有一個(gè)參數(shù): max_conns可以對(duì)服務(wù)端進(jìn)行限流,可惜在商業(yè)版nginx中才能使用

在nginx1.11.5版本以后,官方已經(jīng)將該參數(shù)從商業(yè)版中脫離出來了,也就是說只要我們將生產(chǎn)上廣泛使用的nginx1.9.12版本和1.10版本升級(jí)即可使用

server {
	# max_conns最大接收服務(wù)數(shù)量
	server 127.0.0.1:8080 max_conns=100;
}

安全配置

版本安全

http {
	server_tokens off;
}

IP安全

http {
	location / {
		allow 127.0.0.1;	# 白名單
		deny all;	# 黑名單
	}
}

文件安全

http {
	location /logs{
		autoindex on;	# 展示目錄
		root /static;
	}
	location ^/logs~*\.(log|txt)$ {
		add_header Content_Type text/plain;
		root /static;
	}
}

連接安全

http {
	# SSL settings
}

Nginx優(yōu)化

調(diào)整Nginx的主配置文件,增加并發(fā)量

worker_processes 2;# 調(diào)整與CPU一致
events {
	# 每個(gè)worker最大并發(fā)數(shù)量
	worker_connection 65535;
}

Nginx長連接:HTTP1.1之后,HTTP協(xié)議支持持久連接,也就是長連接,優(yōu)點(diǎn)在于在一個(gè)TCP連接上可以傳送多個(gè)HTTP請(qǐng)求和響應(yīng),

nginx長連接短連接,可以增強(qiáng)服務(wù)器的容災(zāi)能力

減少了建立和關(guān)閉連接的消耗和延遲。如果我們使用了nginx去作為反向代理或者負(fù)載均衡,從客戶端過來的長連接請(qǐng)求就會(huì)被轉(zhuǎn)換成短連接發(fā)送給服務(wù)器端,為了支持長連接,我們需要在nginx服務(wù)器上做一些配置

使用nginx時(shí),想要做到長連接,我們必須做到以下兩點(diǎn):

  • 從client到nginx是長連接(events)

  • 從nginx到server是長連接(http)

對(duì)于客戶端而言,nginx其實(shí)扮演著server的角色,反之,之于server,nginx就是一個(gè)client

events {
	# keepalive超時(shí)時(shí)間,默認(rèn)是60s,切記這個(gè)參數(shù)也不能設(shè)置過大!否則會(huì)導(dǎo)致許多無效的http連接占據(jù)著nginx的連接數(shù),終nginx崩潰!
	keepalive_timeout 60;
}
http {
	keepalive_timeout 60;
}

Nginx壓縮

gzip壓縮作用:將響應(yīng)報(bào)文發(fā)送至客戶端之前可以啟用壓縮功能,這能夠有效地節(jié)約帶寬,并提高響應(yīng)至客戶端的速度,壓縮會(huì)消耗nginx的cpu性能。

gzip壓縮可以配置http,server和location模塊下

http {
    #gzip模塊設(shè)置
    #開啟壓縮
    gzip on;
    # 設(shè)置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭得content-length中進(jìn)行獲取。
    默認(rèn)值是0,不管頁面多大都?jí)嚎s。建議設(shè)置成大于2k的字節(jié)數(shù),小于2k可能會(huì)越壓越大。
    gzip_min_length 2k;
    # 設(shè)置系統(tǒng)獲取幾個(gè)單位的緩存用于存儲(chǔ)gzip的壓縮結(jié)果數(shù)據(jù)流。 例如 4 4k 代表以4k為單
    位,按照原始數(shù)據(jù)大小以4k為單位的4倍申請(qǐng)內(nèi)存。 4 8k 代表以8k為單位,按照原始數(shù)據(jù)大小以8k
    為單位的4倍申請(qǐng)內(nèi)存。
    # 如果沒有設(shè)置,默認(rèn)值是申請(qǐng)跟原始數(shù)據(jù)相同大小的內(nèi)存空間去存儲(chǔ)gzip壓縮結(jié)果。
    gzip_buffers 4 16k;
    #壓縮級(jí)別,1-10,數(shù)字越大壓縮的越好,也越占用CPU時(shí)間
    gzip_comp_level 5;
    # 默認(rèn)值: gzip_types text/html (默認(rèn)不對(duì)js/css文件進(jìn)行壓縮)
    # 壓縮類型,匹配MIME類型進(jìn)行壓縮
    # 不能用通配符 text/*
    # (無論是否指定)text/html默認(rèn)已經(jīng)壓縮
    # 設(shè)置哪壓縮種文本文件可參考 conf/mime.types
    gzip_types text/plain application/xjavascript text/css application/xml;
    # 值為1.0和1.1 代表是否壓縮http協(xié)議1.0,選擇1.0則1.0和1.1都可以壓縮
    gzip_http_version 1.0
    # IE6及以下禁止壓縮
    gzip_disable "MSIE [1-6]\.";
    # 默認(rèn)值:off
    # Nginx作為反向代理的時(shí)候啟用,開啟或者關(guān)閉后端服務(wù)器返回的結(jié)果,匹配的前提是后端服
    務(wù)器必須要返回包含"Via"的 header頭。
    # off - 關(guān)閉所有的代理結(jié)果數(shù)據(jù)的壓縮
    # expired - 啟用壓縮,如果header頭中包含 "Expires" 頭信息
    # no-cache - 啟用壓縮,如果header頭中包含 "Cache-Control:no-cache" 頭信息
    # no-store - 啟用壓縮,如果header頭中包含 "Cache-Control:no-store" 頭信息
    # private - 啟用壓縮,如果header頭中包含 "Cache-Control:private" 頭信息
    # no_last_modified - 啟用壓縮,如果header頭中不包含 "Last-Modified" 頭信息
    # no_etag - 啟用壓縮 ,如果header頭中不包含 "ETag" 頭信息
    # auth - 啟用壓縮 , 如果header頭中包含 "Authorization" 頭信息
    # any - 無條件啟用壓縮
        gzip_proxied expired no-cache no-store private auth;
    # 給CDN和代理服務(wù)器使用,針對(duì)相同url,可以根據(jù)頭信息返回壓縮和非壓縮副本
    gzip_vary on
}

狀態(tài)監(jiān)控

server {
	location /NginxStatus {
		stub_status on;
		access_log off;
	}
}

插件安裝

./configure --prefix=... --with-http_stub_status _module

“高并發(fā)下Nginx性能怎么優(yōu)化”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI