#?? 🎜🎜#Anforderungsanalyse, ein Nginx am Frontend als Load-Balancing-Reverse-Proxy und zwei httpd-Server hinten. Die gesamte Architektur dient der Bereitstellung von BBS-Diensten (Forum). Es besteht die Notwendigkeit, eine Trennung von Lesen und Schreiben zu erreichen. Dies ist die Funktion zum Hochladen von Anhängen. Die von uns hochgeladenen Anhänge können nur auf web1 hochgeladen werden. Anschließend wird rsync + inotify verwendet Um Anhänge auf web1 zu synchronisieren, weiß jeder, dass rsync +inotify nur vom Master zum Slave synchronisieren kann. Daher kann Web1 Schreibvorgänge ausführen, während Web2 nur Lesevorgänge ausführen kann, was die Notwendigkeit einer Trennung von Lesen und Schreiben mit sich bringt. Lassen Sie uns darüber sprechen, wie die Trennung von Lesen und Schreiben erreicht werden kann.
2.webdav-Funktionsbeschreibung
webdav (webbasierte verteilte Erstellung und Versionierung) Ein Kommunikationsprotokoll, das auf dem http 1.1-Protokoll basiert. Es erweitert http 1.1 und fügt zusätzlich zu mehreren HTTP-Standardmethoden wie get, post und head einige neue Methoden hinzu, sodass Anwendungen direkt auf den Webserver lesen und schreiben können und das Sperren und Entsperren von Schreibdateien unterstützen Unterstützt auch die Dateiversionskontrolle. Auf diese Weise können wir die Lese-Schreib-Trennfunktion konfigurieren. Lassen Sie uns sie im Detail konfigurieren.
3. Ändern Sie die Konfigurationsdatei
[root@nginx nginx]# vim /etc/nginx/nginx.conf server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://192.168.18.202; if ($request_method = "put"){ proxy_pass http://192.168.18.201; } } }
4. Laden Sie die Konfigurationsdatei neu
[root@nginx ~]# service nginx reload nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 重新载入 nginx: [确定]
[root@web1 ~]# vim /etc/httpd/conf/httpd.conf
Hinweis: Aktivieren Sie es einfach unter
6. Starten Sie httpd neu.
[root@web1 ~]# service httpd restart 停止 httpd: [确定] 正在启动 httpd: [确定]
Hinweis: Wenn wir Dateien auf Web2 hochladen, gibt es keine Webdav-Funktion zum Öffnen eines Kontos, da Web2 nur über eine für Menschen lesbare Funktion verfügt. Daher ist die Anzeige mit der 405-Methode nicht zulässig.
[root@nginx ~]# curl http://192.168.18.201 <h1>web1.test.com</h1> [root@nginx ~]# curl http://192.168.18.202 <h1>web2.test.com</h1>
Hinweis: Wir haben die Webdav-Funktion in web1 aktiviert, aber unser Verzeichnis ist das Stammverzeichnis und Apache-Benutzer dürfen nicht hochladen, daher wird 403 verboten angezeigt. Als nächstes autorisieren wir Apache, das Hochladen zu erlauben.
[root@nginx ~]# curl -t /etc/issue http://192.168.18.202 <!doctype html public "-//ietf//dtd html 2.0//en"> <html><head> <title>405 method not allowed</title> </head><body> <h1>method not allowed</h1> the requested method put is not allowed for the url /issue. <hr> <address>apache/2.2.15 (centos) server at 192.168.18.202 port 80</address> </body></html>
Lassen Sie es uns noch einmal testen,
[root@nginx ~]# curl -t /etc/issue http://192.168.18.201 <!doctype html public "-//ietf//dtd html 2.0//en"> <html><head> <title>403 forbidden</title> </head><body> <h1>forbidden</h1> you don't have permission to access /issue on this server. <hr> <address>apache/2.2.15 (centos) server at 192.168.18.201 port 80</address> </body></html>
[root@web1 ~]# setfacl -m u:apache:rwx /var/www/html/
[root@nginx ~]# curl -t /etc/issue http://192.168.18.201 <!doctype html public "-//ietf//dtd html 2.0//en"> <html><head> <title>201 created</title> </head><body> <h1>created</h1> resource /issue has been created. <hr /> <address>apache/2.2.15 (centos) server at 192.168.18.201 port 80</address> </body></html>
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie die Lese-/Schreibtrennung von Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!