Heim Betrieb und Instandhaltung Nginx So legen Sie die Verzeichnis-Whitelist und die IP-Whitelist in Nginx fest

So legen Sie die Verzeichnis-Whitelist und die IP-Whitelist in Nginx fest

May 18, 2023 pm 03:52 PM
nginx ip

1. Legen Sie die Verzeichnis-Whitelist fest: Es gibt keine Einschränkung für den Anforderungspfad zum API-Verzeichnis, es kann als

server{
    location /app {
      proxy_pass http://192.168.1.111:8095/app;

      limit_conn conn 20;

      limit_rate 500k;

      limit_req zone=foo burst=5 nodelay; 
    }
    location /app/api {
      proxy_pass http://192.168.1.111:8095/app/api
    }
}
# 因nginx会优先进行精准匹配,所以以上写法即接触了对api目录下属路径的限制
geschrieben werden. Sie müssen Nginx Geo und Nginx Map verwenden

Ohne manuelles Löschen (--without-http_geo_module oder --without-http_map_module) lädt Nginx standardmäßig ngx-http-geo-module und ngx-http-map-module-bezogene Inhalte

ngx-http-geo-module kann zum Erstellen von Variablen verwendet werden, der Variablenwert hängt von der Client-IP-Adresse ab.

ngx-http-map-module kann zum Erstellen von Variablen basierend auf anderen Variablen und Variablenwerten verwendet werden. Dies ermöglicht die Klassifizierung oder die Zuordnung mehrerer Variablen zu unterschiedlichen Werten und deren Speicherung in einer Variablen

nginx geo 格式说明
 
syntax ( 语法格式 ): geo [$address] $variable { ... }
default ( 默认 ): -
content ( 配置段位 ): http
nginx map 格式说明
syntax ( 语法格式 ): map string $variable { ... }
default ( 默认 ):-
content ( 配置段位 ): http
 
白名单配置示例
 
http{
   # ... 其他配置内容
   #定义白名单ip列表变量
   geo $whiteiplist {
     default 1 ;
     127.0.0.1/32 0;
     64.223.160.0/19 0;
   }
   #使用map指令映射将白名单列表中客户端请求ip为空串
   map $whiteiplist $limit{
     1 $binary_remote_addr ;
     0 "";
   }
   #配置请求限制内容
   limit_conn_zone $limit zone=conn:10m;
   limit_req_zone $limit zone=allips:10m rate=20r/s;
   server{
     location /yourapplicationname {
       proxy_pass http://192.168.1.111:8095/app;
       limit_conn conn 50;
       limit_rate 500k;
       limit_req zone=allips burst=5 nodelay;
     }
   }
}
白名单配置可用于对合作客户,搜索引擎等请求过滤限制
 
#(特殊情况处理)
 
#如果想仅限制指定的请求,如:只限制post请求,则:
http{
   # 其他请求..
   #请求地址map映射
   map $request_method $limit {
     default "";
     post $binary_remote_addr;
   }
   #限制定义
   limit_req_zone $limit zone=reqlimit:20m rate=10r/s;
   server{
     ... #与普通限制一致
   }
}
#在此基础上,想进行指定方法的白名单限制处理,则:
http{
   #...
   #定义白名单列表
   map $whiteiplist $limitips{
     1 $binary_remote_addr;
     0 "";
   }
 
   #基于白名单列表,定义指定方法请求限制
   map $request_method $limit {
     default "";
     # post $binary_remote_addr;
     post $limitips;
   }
 
   #对请求进行引用
   limit_req_zone $limit zone=reqlimit:20m rate=10r/s;
 
   #在server中进行引用
   server{
     #... 与普通限制相同
   }
}

Das obige ist der detaillierte Inhalt vonSo legen Sie die Verzeichnis-Whitelist und die IP-Whitelist in Nginx fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT

Stock Market GPT

KI-gestützte Anlageforschung für intelligentere Entscheidungen

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie PHP, um eine Q & A -Community -Plattform zu entwickeln, detaillierte Erläuterung des interaktiven Monetisierungsmodells mit PHP -Community So verwenden Sie PHP, um eine Q & A -Community -Plattform zu entwickeln, detaillierte Erläuterung des interaktiven Monetisierungsmodells mit PHP -Community Jul 23, 2025 pm 07:21 PM

1. Die erste Wahl für die Kombination aus Laravel Mysql Vue/React in der PHP -Entwicklungsfrage und der Antwortgemeinschaft ist die erste Wahl für die Kombination aus Laravel Mysql Vue/React aufgrund ihrer Reife im Ökosystem und der hohen Entwicklungseffizienz; 2. Die hohe Leistung erfordert Abhängigkeit von Cache (REDIS), Datenbankoptimierung, CDN und asynchronen Warteschlangen; 3. Die Sicherheit muss mit Eingabefilterung, CSRF -Schutz, HTTPS, Kennwortverschlüsselung und Berechtigungssteuerung erfolgen. V.

Was verursacht einen Fehler 'zu viele geöffnete Dateien' in Nginx? Was verursacht einen Fehler 'zu viele geöffnete Dateien' in Nginx? Jul 05, 2025 am 12:14 AM

Wenn Nginx einen Fehler "toomyopenfiles" erfährt, liegt dies normalerweise daran, dass das System oder der Prozess die Dateideskriptorgrenze erreicht hat. Zu den Lösungen gehören: 1.. Erhöhen Sie die weichen und harten Grenzen des Linux -Systems, setzen Sie die relevanten Parameter von Nginx oder führen Sie Benutzer in /etc/security/limits.conf aus; 2. Passen Sie den Wert von Worker_Connections von Nginx an, um sich an den erwarteten Verkehr anzupassen, und gewährleisten Sie die überlastete Konfiguration. 3.. Erhöhen Sie die obere Grenze der Dateideskriptoren auf Systemebene Fs.file-max, bearbeiten /etc/sysctl.conf und Änderungen anwenden; 4. Optimieren Sie die Nutzung des Protokolls und der Ressourcen und reduzieren

So erstellen Sie eine PHP NGINX -Umgebung mit macOS, um die Kombination von NGINX- und PHP -Diensten zu konfigurieren So erstellen Sie eine PHP NGINX -Umgebung mit macOS, um die Kombination von NGINX- und PHP -Diensten zu konfigurieren Jul 25, 2025 pm 08:24 PM

Die Kernrolle von Homebrew bei der Konstruktion der Mac -Umgebung besteht darin, die Installation und Verwaltung der Software zu vereinfachen. 1. Homebrew verarbeitet automatisch Abhängigkeiten und verkapselt komplexe Kompilierungs- und Installationsprozesse in einfache Befehle. 2. Bietet ein einheitliches Softwarepaket -Ökosystem, um die Standardisierung des Software -Installationsorts und der Konfiguration zu gewährleisten. 3. Integriert Service -Management -Funktionen und kann Dienste leicht über Brewservices starten und stoppen. 4. Bequemes Software -Upgrade und -wartung und verbessert die Sicherheit und Funktionalität der Systeme.

So verwenden Sie Kubernetes, um die PHP -Umgebung konsistente Produktion und lokale Behälterkonfigurationsstandards zu erhalten So verwenden Sie Kubernetes, um die PHP -Umgebung konsistente Produktion und lokale Behälterkonfigurationsstandards zu erhalten Jul 25, 2025 pm 06:21 PM

Um das Problem der Inkonsistenz zwischen PHP -Umgebung und Produktion zu lösen, besteht der Kern darin, die Container- und Orchestrierungsfunktionen von Kubernetes zu verwenden, um die Umweltkonsistenz zu erreichen. Die spezifischen Schritte sind wie folgt: 1. Erstellen Sie ein einheitliches Docker -Bild, einschließlich aller PHP -Versionen, Erweiterungen, Abhängigkeiten und Webserverkonfigurationen, um sicherzustellen, dass dasselbe Bild in der Entwicklung und Produktion verwendet wird. 2. Verwenden Sie Kubernetes 'configMap und geheim, um nicht sensitive und empfindliche Konfigurationen zu verwalten und eine flexible Umstellung verschiedener Umgebungskonfigurationen durch Volumenmontage oder Umgebungsvariableninjektion zu erreichen. 3. Gewährleistung der Konsistenz des Anwendungsverhaltens durch Unified Kubernetes -Deployment -Definitionsdateien (z. B. Bereitstellung und Dienst) und in die Versionskontrolle einbeziehen; 4.

Was bedeutet @ in einem Standortblock (benannte Standorte)? Was bedeutet @ in einem Standortblock (benannte Standorte)? Jul 09, 2025 am 01:49 AM

In der Nginx -Konfiguration werden die @ -Symbole im Standortblock verwendet, um benannte Stellen zu definieren. Dies sind intern verwendete Endpunkte und können nicht direkt von der Client -Anfrage übereinstimmen. Sie werden normalerweise über die Richtlinien von ERROR_PAGE, Try_files oder Umschreiben aufgerufen. 1. Der Namensort beginnt mit @. Zum Beispiel wird der Ort@NotFound nicht auf direkte Anforderungen reagieren, sondern von anderen Konfigurationsteilen ausgelöst. 2. Es wird häufig für die kundenspezifische Fehlerbehandlung, interne Routing und Backend Agent -Unterstützung verwendet. 3. In Kombination mit Try_files wird weiterhin an @backend weitergeleitet, wenn keine statischen Dateien vorhanden sind. 4. Notizen umfassen: Nicht direkt zugegriffen, Konflikte vermeiden und beschreibende Namen verwenden. Namensstandorte können umfassen

So verwenden Sie PHP zur Entwicklung von E-Commerce-Backend-Monetarisierung PHP E-Commerce-Systemarchitektur und Gewinnstrategie So verwenden Sie PHP zur Entwicklung von E-Commerce-Backend-Monetarisierung PHP E-Commerce-Systemarchitektur und Gewinnstrategie Jul 25, 2025 pm 06:33 PM

1. Die Mainstream-Frameworks des PHP-E-Commerce-Backends sind Laravel (Fast Development, Starke Ecology), Symfony (Unternehmensebene, stabile Struktur), YII (ausgezeichnete Leistung, geeignet für standardisierte Module); 2. Der Technologiestapel muss mit MySQL Redis-Cache, Rabbitmq/Kafka-Nachrichtenwarteschlange, Nginx PHP-FPM und Front-End-Trennung ausgestattet werden. 3.. Eine hohe Parallelitätsarchitektur sollte geschichtet und modular sein, Datenbank -Lesen und Schreiben von Trenn-/Verteilte Datenbank, beschleunigt mit Cache und CDN, asynchrone Verarbeitung von Aufgaben, Teilen von Lastausgleich und Sitzung, allmählich Microservice und eine Überwachung und einen Alarmsystem. 4. Zu den Mehrfachmonetisierungspfaden gehören Produktpreisdifferenz oder Plattformprovision, Standortwerbung, SaaS-Abonnement, maßgeschneiderte Entwicklung und Plug-in-Markt, API-Verbindung

Wie teste ich meine Nginx -Konfiguration auf Syntaxfehler vor dem Nachladen? Wie teste ich meine Nginx -Konfiguration auf Syntaxfehler vor dem Nachladen? Jul 13, 2025 am 01:06 AM

Nachdem Sie die NGINX -Konfiguration geändert haben, sollten Sie zuerst die Syntax testen und dann den Dienst neu laden. 1. Überprüfen Sie Nginx-T, um die Konfigurationsdateisyntax zu überprüfen. Wenn die Eingabeaufforderung "Syntaxisok" und "testissuccessful" aufgefordert werden, bedeutet dies, dass sie korrekt ist. Wenn ein Fehler vorliegt, wird die spezifische Problemlinie angezeigt. 2. Wenn die Konfigurationsdateiberechtigungen hoch sind, müssen Sie Sudonginx-T zum Ausführen verwenden. 3. bestätigen Sie, dass der Test tatsächlich geladen ist. Sie können den Pfad über nginx-t-c/path/to/your/nginx.conf angeben oder die Konfigurationsdatei anzeigen, die vom Hauptprozess über ps-ef | grepnginx verwendet wird. 4. Führen Sie nach dem Test den Sudonginx-Reload-Überladungsdienst aus, um die neue Konfiguration in Kraft zu setzen

So konfigurieren Sie die MongoDB -Unterstützung für PHP -Umgebungseinstellungen für die PHP -Verbindung zur Mongo -Datenbank So konfigurieren Sie die MongoDB -Unterstützung für PHP -Umgebungseinstellungen für die PHP -Verbindung zur Mongo -Datenbank Jul 23, 2025 pm 06:54 PM

Um die PHP -Umgebung für MongoDB zu konfigurieren, besteht der Kernschritt darin, den PHP -Treiber von MongoDB zu installieren und zu aktivieren, damit die PHP -Anwendung mit der MongoDB -Datenbank kommunizieren kann. 1. Installieren Sie den MongoDBPHP -Treiber. Es wird empfohlen, PECL zur Installation zu verwenden. Wenn es kein PECL gibt, müssen Sie zuerst das PHP -Entwicklungspaket und die zugehörigen Kompilierungstools installieren. 2. Bearbeiten Sie die Php.ini -Datei und fügen Sie die Erweiterung hinzu. 3. Starten Sie den Webserver oder den PHP-FPM-Dienst neu, um die Konfiguration in Kraft zu setzen. 4. Überprüfen Sie, ob die Erweiterung erfolgreich über Phpinfo () oder PHP-M geladen wird. Zu den häufig gestellten Fragen gehören fehlende PECL -Befehle, Kompilierungsfehler, Php.ini

See all articles