Nginx-Szenariopraxis
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.
1 >
1. Dynamische Ressourcen und statische Ressourcen Wenn es sich bei der vom Client angeforderten Seite um eine statische Webseite handelt, antwortet der Server dem Client direkt mit dem Inhalt der statischen Webseite. Wenn der Client eine dynamische Webseite anfordert, muss der Server zunächst die dynamische Webseite durch eine statische Webseite ersetzen und dann dem Client auf die konvertierte statische Webseite antworten Mehrere Arten statischer Ressourcen- Browser-Rendering: HTML, CSS, JAVASCRIPT
- Bilder: JPEG, GIF, PNG...
- Video: FLV, MPEG...
- Datei: TXT usw. Jede Download-Datei
- sendfile (Dateilesen)
- Konfigurationssyntax: sendfile on|off ;
- Standard: Keine
- Kontext: http, Server, Standort, falls am Standort
- Konfigurationssyntax: tcp_nopush on|off;
- Standard: Keine
- Kontext: http, Server, Standort
- Konfigurationssyntax: tcp_nodely on|off;
- Standard: Keine
- Kontext: http, Server, Standort
- Konfigurationssyntax: gzip on|off;
- Standard: Keine
- Kontext: http, Server, Standort, wenn am Standort
- Konfigurationssyntax: gzip_comp_level level;
- Standard: keine;
- Kontext: http, Server, Standort
- Konfigurationssyntax: gzip_http_version 1.0|1.1;
- Standard: Keine
- Kontext: http, Server, Standort
- Konfigurationssyntax: gzip_static on|off|always;
- Standard: gzip_static off;
- Kontext: http, Server, Standort
Durch das HTTP-Protokoll definierter Caching-Mechanismus (z. B. Läuft ab; Cache-Kontrolle usw.)
- Browser hat keinen Cache:
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
add_header
Konfigurationssyntax: add_header-Namenswert [immer];
Standard: Keine
Kontext: http, Server, Standort, falls am Standort
-
Konfigurationssyntax: valid_referers none|blocked|server_names|string...;
Standard: Keine
-
Kontext: Server, Standort
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 >
- Einige Syntax für andere Proxys
Ergänzend
: - Syntaxkonfiguration: Proxy_buffering on |. off;
- Kontext: http, Server, Standort
- Erweiterungen: Proxy_buffer_size, Proxy_buffers, Proxy_busy_buffers_size
- proxy_redirect (Sprungumleitung)
- Konfigurationssyntax: Proxy_redirect Standard;proxy_redirect aus;proxy_redirect Umleitungsersatz;
- Kontext: http, Server, Standort
- proxy_set_header (Header-Informationen)
- Konfigurationssyntax: Proxy_set_header-Dateiwert;
- Kontext: http, Server, Standort
- Erweiterung: Proxy_hide_header , Proxy_set_body
- proxy_connect_timeout (Zeitüberschreitung)
- Konfigurationssyntax: Proxy_Connect_Timeout-Zeit;
- Kontext: http, Server, Standort
- Erweiterungen: Proxy_read_timeout, Proxy_send_timeout
- Beispiel in der Konfigurationsdatei: 3. Nginx als Lastausgleichsdienst
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;
Nach dem Login kopieren - Konfigurationssyntax: Upstream-Name {...}
- Kontext: http
Einfaches Konfigurationsbeispiel
:ip_hash:
只需要在upstream中加入 ip_hash; 即可
缺陷:如果走代理,那么remote_addr就不是用户真实的ip
url_hash(1.7.2版本以后可用):
配置语法:hash key [consistent];
默认:无
Context:upstream
服务端缓存。例: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
rm -rf 缓存目录内容
第三方扩展模块:ngx_cache_purge
proxy_no_cache
配置语法:proxy_no_cache string ...;
默认:无
Context:http,server,location
slice
语法配置:slice size;
默认:slice 0;
Context:http、server,location
- Browser-Anfrage → Kein Cache → WEB-Server anfordern → Antwort anfordern, aushandeln → Vorhanden
- Browseranfrage→mit Cache→Verifizierungsablauf→vorhanden
5. Standortübergreifender Zugriff
Wie ermöglicht Nginx den standortübergreifenden Zugriff? ? Access-Controller-Allow-Origin
Name OK Für Access-Controller-Allow-Origin und Access-Controller-Allow-Method
6. Anti-Hotlinking
Basierend auf dem http_refer Anti-Hotlinking-Konfigurationsmodul
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
2 ein Proxy-Dienst
proxy_buffering (Puffer)
- Standard: keine;
- Standard: Keine
- Standard: Proxy_set_header Host $proxy_host;proxy_set_header Verbindung geschlossen;
- Standard: Keine
: 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
- Standard: Keine
upstream ronaldo { server ip:port [param]; server ip:port [param]; server ip:port [param]; } server { location / { proxy_pass http://ronaldo; } }
param参数解释:
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 |
key可以是$request_uri,根据url进行hash
四、Nginx作为缓存服务
1、缓存的类型
2、常用缓存配置
常见配置:
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; } }
2、清除指定缓存
3、如何让部分页面不缓存
简单示例
if ($request_uri ~ ^/(url_3|login|register|password\/reset)) { set $cookie_nocache 1; } location / { proxy_no_cache $cookie_nocache; }
4、大文件分片请求
优势:每个子请求收到的数据都会形成一个独立的文件,一个请求断了,其他请求不受影响。
缺点:当文件很大或者slice很小的时候,可能会导致文件描述符耗尽等待情况。
相关推荐:
Das obige ist der detaillierte Inhalt vonNginx-Szenariopraxis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

Verwenden Sie unter Linux den folgenden Befehl, um zu überprüfen, ob Nginx gestartet wird: SystemCTL -Status Nginx Richter basierend auf der Befehlsausgabe: Wenn "aktiv: aktiv (lief) angezeigt wird, wird Nginx gestartet. Wenn "Active: Inactive (Dead)" angezeigt wird, wird Nginx gestoppt.

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

Wie fixiere ich Nginx 403 Verbotener Fehler? Überprüfen Sie die Datei- oder Verzeichnisberechtigungen; 2.Htaccess -Datei prüfen; 3. Überprüfen Sie die Konfigurationsdatei der Nginx; 4. Starten Sie Nginx neu. Weitere mögliche Ursachen sind Firewall -Regeln, Selinux -Einstellungen oder Anwendungsprobleme.

Um die Zugriffsadresse auf Server IP in Nginx festlegen, konfigurieren Sie den Serverblock, legen Sie die Höradresse fest (z. B. Hören 192.168.1.10:80). Legen Sie den Servernamen fest (z.

Die Methoden zum Anzeigen des laufenden Status von Nginx sind: Verwenden Sie den Befehl ps, um den Prozessstatus anzuzeigen; Zeigen Sie die nginx -Konfigurationsdatei /etc/nginx/nginx.conf an; Verwenden Sie das Nginx -Statusmodul, um den Statusendpunkt zu aktivieren. Verwenden Sie Überwachungstools wie Prometheus, Zabbix oder Nagios.

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen
