Dieser Artikel stellt hauptsächlich die Szenenpraxis über Nginx vor, die einen gewissen Referenzwert hat. Jetzt kann ich ihn mit allen teilen, die ihn brauchen.
Erste Anfrage:
Zweite Anfrage:
expires (Antwortheader fügen Cache-Control hinzu, Expires)
Konfigurationssyntax: läuft ab [geändert] Zeit; läuft ab Epoche |max |off;
Standard: läuft ab;
Kontext: http, Server, Standort, falls vorhanden
Wie ermöglicht Nginx den standortübergreifenden Zugriff? ? Access-Controller-Allow-Origin
add_header
Konfigurationssyntax: add_header-Namenswert [immer];
Standard: Keine
Kontext: http, Server, Standort, falls am Standort
Name OK Für Access-Controller-Allow-Origin und Access-Controller-Allow-Method
Basierend auf dem http_refer Anti-Hotlinking-Konfigurationsmodul
Konfigurationssyntax: valid_referers none|blocked|server_names|string...;
Standard: Keine
Kontext: Server, Standort
valid_referers none blocked IP if($invalid_referer) { return 403; }
Erinnerung: Sie können Curl verwenden, um den konfigurierten Anti-Leech-Schutz zu testen: curl -e "http:www.baidu.com" -I IP
Proxy weiterleiten
Das Objekt ist der Client (wenn Sie beispielsweise auf das externe Netzwerk zugreifen möchten, Stellen Sie den Proxy-Server auf die Proxy-Adresse ein, der Client kann jede Website besuchen)
Reverse-Proxy
Das Objekt ist der Server (Sie müssen sich nicht darum kümmern, wo Sie zugreifen) Ein Server, der Reverse-Proxy wird auf der Serverseite platziert)
proxy_pass
Konfigurationssyntax: Proxy_Pass-URL
Standard: Keine >
Ergänzend
:proxy_buffering (Puffer)
proxy_pass http://127.0.0.1:8080; proxy_redirect default; proxy_set_header HOST $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 30; proxy_send_timeout 60; proxy_read_timeout 60; proxy_buffer_size 32k; proxy_buffering on; proxy_buffers 4 128k; proxy_busy_buffers_size 256k; proxy_max_temp_file_size 256k;
: Aufbauend auf der vorhandenen Netzwerkstruktur. Es bietet eine kostengünstige, effektive und transparente Methode, um die Bandbreite von Netzwerkgeräten und Servern zu erweitern und den Durchsatz zu erhöhen , verbessern die Datenverarbeitungsfunktionen des Netzwerks und verbessern die Flexibilität und Verfügbarkeit des Netzwerks.Lastausgleich, der englische Name ist Load Balance, bedeutet, die Ausführung mehreren Betriebseinheiten wie Webservern, FTP-Servern, Unternehmensschlüsselanwendungsservern und anderen geschäftskritischen Servern usw. zuzuweisen, um gemeinsam die Arbeit abzuschließen Aufgaben.
Upstream
Einfaches Konfigurationsbeispiel
:upstream ronaldo { server ip:port [param]; server ip:port [param]; server ip:port [param]; } server { location / { proxy_pass http://ronaldo; } }
param | 意义 |
---|---|
down | 当前的server暂时不参与负载均衡 |
weight=num | 权重,num越大,轮询到的概率越大 |
backup | 预留的备份服务器 |
max_fails | 允许请求失败的次数 |
fail_timeout | 经过max_fails失败后,服务暂停的时间(默认是10s) |
max_conns | 限制最大的接收的连接数 |
算法 | 意义 |
---|---|
轮询 | 按时间顺序逐一分配到不同的后端服务器 |
加权轮询 | weight值越大,分配到的访问几率越高 |
ip_hash | 每个请求按访问IP的hash结果分配,这样来自同一个IP就固定访问同一个后端服务器 |
least_conn | 最少连接数,哪个服务器连接数少就分发 |
url_hash | 按照访问的URL的hash结果来分配请求,是每个URL定向到同一个后端服务器 |
hash关键字值 | hash自定义的key |
ip_hash:
只需要在upstream中加入 ip_hash; 即可
缺陷:如果走代理,那么remote_addr就不是用户真实的ip
url_hash(1.7.2版本以后可用):
配置语法:hash key [consistent];
默认:无
Context:upstream
key可以是$request_uri,根据url进行hash
服务端缓存。例:memcache、reids
代理缓存。例:Nginx缓存服务端的数据
客户端缓存。
proxy_cache_path
配置语法proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size] [use_temp_path]...
默认:无
Context:http
proxy_cache
配置语法:proxy_cache zone | off;
默认:proxy_cache off;
Context:http,server,location
proxy_cache_valid(缓存过期周期)
配置语法:proxy_cache_valid [code...] time
默认:无
Context:http、server、location
proxy_cache_key(缓存的维度)
配置语法:proxy_cache_key string;
默认:proxy_cache_key $scheme$proxy_host$request_uri
;
Context:http、server、location
常见配置:
proxy_cache_path cache_path levels=1:2 keys_zone=key_name:10m max_size=10g inactive=60m use_temp_path=off; server { loaction / { proxy_pass http://ronaldo; proxy_cache key_name; proxy_cache_valid 200 304 12h; proxy_cache_valid any 10m; proxy_cache_key $host$uri$is_args$args; add_header Nginx-Cache "$upstream_cache_status"; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; } }
rm -rf 缓存目录内容
第三方扩展模块:ngx_cache_purge
proxy_no_cache
配置语法:proxy_no_cache string ...;
默认:无
Context:http,server,location
简单示例
if ($request_uri ~ ^/(url_3|login|register|password\/reset)) { set $cookie_nocache 1; } location / { proxy_no_cache $cookie_nocache; }
slice
语法配置:slice size;
默认:slice 0;
Context:http、server,location
优势:每个子请求收到的数据都会形成一个独立的文件,一个请求断了,其他请求不受影响。
缺点:当文件很大或者slice很小的时候,可能会导致文件描述符耗尽等待情况。
相关推荐:
Das obige ist der detaillierte Inhalt vonNginx-Szenariopraxis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!