


So implementieren Sie Nginx-Anforderungsbeschränkungen und Zugriffskontrolle
一、nginx的请求限制
1. http协议的连接与请求
http协议版本与连接关系
http协议版本 | 连接关系 |
---|---|
http1.0 | tcp不能复用 |
http1.1 | 顺序性tcp复用 |
http2.0 | 多路复用tcp复用 |
http请求建立在一次tcp连接的基础上。
一次tcp连接至少可以产生一次http请求,http1.1版本以后,建立一次tcp连接可以发送多次http请求。
1. 连接频率限制
语法
syntax: limit_conn_zone key zone=name:size; default: — context: http syntax: limit_conn zone number; default: — context: http, server, location
用法
在nginx配置文件中的 http 下配置
http { # ...其它代码省略... # 开辟一个10m的连接空间,命名为addr limit_conn_zone $binary_remote_addr zone=addr:10m; server { ... location /download/ { # 服务器每次只允许一个ip地址连接 limit_conn addr 1; } } }
2. 请求频率限制
语法
syntax: limit_req_zone key zone=name:size rate=rate; default: — context: http syntax: limit_req zone=name [burst=number] [nodelay]; default: — context: http, server, location
用法
在nginx配置文件中的 http 下配置
http { # ...其它代码省略... # 开辟一个10m的请求空间,命名为one。同一个ip发送的请求,平均每秒只处理一次 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; server { ... location /search/ { limit_req zone=one; # 当客户端请求超过指定次数,最多宽限5次请求,并延迟处理,1秒1个请求 # limit_req zone=one burst=5; # 当客户端请求超过指定次数,最多宽限5次请求,并立即处理。 # limit_req zone=one burst=5 nodelay; } } }
二、nginx的访问控制
1. 基于ip的访问控制
语法
syntax: allow address | cidr | unix: | all; default: — context: http, server, location, limit_except syntax: deny address | cidr | unix: | all; default: — context: http, server, location, limit_except
address
:ip地址,例如:192.168.1.1cidr
:例如:192.168.1.0/24;unix
:socket方式all
:所有
用法
在nginx配置文件中的 server 下配置
server { # ...其它代码省略... location ~ ^/index_1.html { root /usr/share/nginx/html; deny 151.19.57.60; # 拒绝这个ip访问 allow all; # 允许其他所有ip访问 } location ~ ^/index_2.html { root /usr/share/nginx/html; allow 151.19.57.0/24; # 允许ip 151.19.57.* 访问 deny all; # 拒绝其他所有ip访问 } }
ngx_http_access_module 的局限性
当客户端通过代理访问时,nginx的remote_addr获取的是代理的ip
http_x_forwarded_for
http_x_forwarded_for = client ip, proxy1 ip, proxy2 ip, ...
remote_addr
获取的是直接和服务端建立连接的客户端ip。http_x_forwarded_for
可以记录客户端及所有中间代理的ip
2. 基于用户的登录认证
语法
syntax: auth_basic string | off; default: auth_basic off; context: http, server, location, limit_except syntax: auth_basic_user_file file; default: — context: http, server, location, limit_except
用法
要使用 htpasswd 命令,需要先安装httpd-tools
[root~]# yum -y install httpd-tools
使用 htpasswd 命令创建账号密码文件
[root/etc/nginx]# htpasswd -c ./auth_conf auth_root new password: re-type new password: adding password for user auth_root [root/etc/nginx]# ll auth_conf -rw-r--r-- 1 root root 48 7月 9 11:38 auth_conf [root/etc/nginx]# cat auth_conf auth_root:$apr1$2v6gftlm$oo2le8glgqwi68mcqtcn90
在nginx配置文件中的 server 下配置
server { # ...其它代码省略... location ~ ^/index.html { root /usr/share/nginx/html; auth_basic "auth access! input your password!"; auth_basic_user_file /etc/nginx/auth_conf; } }
修改后重新载入配置文件nginx -s reload
使用浏览器访问 http://192.168.33.88/index.html
输入正确的用户名和密码,即可正常访问。
ngx_http_auth_basic_module 的局限性
用户信息依赖文件方式
操作管理效率低下
Das obige ist der detaillierte Inhalt vonSo implementieren Sie Nginx-Anforderungsbeschränkungen und Zugriffskontrolle. 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



Um dem Tomcat-Server den Zugriff auf das externe Netzwerk zu ermöglichen, müssen Sie Folgendes tun: Ändern Sie die Tomcat-Konfigurationsdatei, um externe Verbindungen zuzulassen. Fügen Sie eine Firewallregel hinzu, um den Zugriff auf den Tomcat-Server-Port zu ermöglichen. Erstellen Sie einen DNS-Eintrag, der den Domänennamen auf die öffentliche IP des Tomcat-Servers verweist. Optional: Verwenden Sie einen Reverse-Proxy, um Sicherheit und Leistung zu verbessern. Optional: Richten Sie HTTPS für mehr Sicherheit ein.

Für die Konvertierung einer HTML-Datei in eine URL ist ein Webserver erforderlich. Dazu sind die folgenden Schritte erforderlich: Besorgen Sie sich einen Webserver. Richten Sie einen Webserver ein. Laden Sie eine HTML-Datei hoch. Erstellen Sie einen Domainnamen. Leiten Sie die Anfrage weiter.

Serverbereitstellungsschritte für ein Node.js-Projekt: Bereiten Sie die Bereitstellungsumgebung vor: Erhalten Sie Serverzugriff, installieren Sie Node.js, richten Sie ein Git-Repository ein. Erstellen Sie die Anwendung: Verwenden Sie npm run build, um bereitstellbaren Code und Abhängigkeiten zu generieren. Code auf den Server hochladen: über Git oder File Transfer Protocol. Abhängigkeiten installieren: Stellen Sie eine SSH-Verbindung zum Server her und installieren Sie Anwendungsabhängigkeiten mit npm install. Starten Sie die Anwendung: Verwenden Sie einen Befehl wie node index.js, um die Anwendung zu starten, oder verwenden Sie einen Prozessmanager wie pm2. Konfigurieren Sie einen Reverse-Proxy (optional): Verwenden Sie einen Reverse-Proxy wie Nginx oder Apache, um den Datenverkehr an Ihre Anwendung weiterzuleiten

Ja, auf Node.js kann von außen zugegriffen werden. Sie können die folgenden Methoden verwenden: Verwenden Sie Cloud Functions, um die Funktion bereitzustellen und öffentlich zugänglich zu machen. Verwenden Sie das Express-Framework, um Routen zu erstellen und Endpunkte zu definieren. Verwenden Sie Nginx, um Proxy-Anfragen an Node.js-Anwendungen umzukehren. Verwenden Sie Docker-Container, um Node.js-Anwendungen auszuführen und sie über Port-Mapping verfügbar zu machen.

Um eine PHP-Website erfolgreich bereitzustellen und zu warten, müssen Sie die folgenden Schritte ausführen: Wählen Sie einen Webserver (z. B. Apache oder Nginx). Installieren Sie PHP. Erstellen Sie eine Datenbank und verbinden Sie PHP. Laden Sie Code auf den Server hoch. Richten Sie den Domänennamen und die DNS-Überwachung der Website-Wartung ein Zu den Schritten gehören die Aktualisierung von PHP und Webservern sowie die Sicherung der Website, die Überwachung von Fehlerprotokollen und die Aktualisierung von Inhalten.

Eine wichtige Aufgabe für Linux-Administratoren besteht darin, den Server vor illegalen Angriffen oder Zugriffen zu schützen. Linux-Systeme verfügen standardmäßig über gut konfigurierte Firewalls wie iptables, Uncomplicated Firewall (UFW), ConfigServerSecurityFirewall (CSF) usw., die eine Vielzahl von Angriffen verhindern können. Jeder mit dem Internet verbundene Computer ist ein potenzielles Ziel für böswillige Angriffe. Es gibt ein Tool namens Fail2Ban, mit dem illegale Zugriffe auf den Server eingedämmt werden können. Was ist Fail2Ban? Fail2Ban[1] ist eine Intrusion-Prevention-Software, die Server vor Brute-Force-Angriffen schützt. Es ist in der Programmiersprache Python geschrieben

Heute werde ich Sie durch die Installation von Nginx in einer Linux-Umgebung führen. Das hier verwendete Linux-System ist CentOS7.2. Bereiten Sie die Installationstools vor. 1. Laden Sie Nginx von der offiziellen Nginx-Website herunter. Die hier verwendete Version ist: 1.13.6.2. Laden Sie das heruntergeladene Nginx auf Linux hoch. Hier wird das Verzeichnis /opt/nginx verwendet. Führen Sie zum Dekomprimieren „tar-zxvfnginx-1.13.6.tar.gz“ aus. 3. Wechseln Sie in das Verzeichnis /opt/nginx/nginx-1.13.6 und führen Sie ./configure für die Erstkonfiguration aus. Wenn die folgende Eingabeaufforderung erscheint, bedeutet dies, dass PCRE nicht auf dem Computer installiert ist und Nginx dies tun muss

Nachdem yum Keepalived installiert hat, konfigurieren Sie die Keepalived-Konfigurationsdatei. In den Keepalived-Konfigurationsdateien ist der Netzwerkkartenname des aktuellen VIP normalerweise als verfügbare IP ausgewählt. Es gibt viele LAN-Umgebungen, daher ist diese VIP eine Intranet-IP im selben Netzwerksegment wie die beiden Maschinen. Bei der Verwendung in einer externen Netzwerkumgebung spielt es keine Rolle, ob es sich im selben Netzwerksegment befindet, solange der Client darauf zugreifen kann. Stoppen Sie den Nginx-Dienst und starten Sie den Keepalived-Dienst. Wenn er nicht gestartet werden kann und fehlschlägt, liegt im Grunde ein Problem mit den Konfigurationsdateien und Skripten oder ein Präventionsproblem vor.
