So konfigurieren Sie die Lese-/Schreibtrennung von Nginx

WBOY
Freigeben: 2023-05-18 15:19:57
nach vorne
1451 Leute haben es durchsucht

#?? 🎜🎜#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.

So konfigurieren Sie die Lese-/Schreibtrennung von Nginx3. Ä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;
        }
    }
}
Nach dem Login kopieren

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:                      [确定]
Nach dem Login kopieren

5 # 🎜🎜#
[root@web1 ~]# vim /etc/httpd/conf/httpd.conf
Nach dem Login kopieren


Hinweis: Aktivieren Sie es einfach unter .

6. Starten Sie httpd neu.

[root@web1 ~]# service httpd restart
停止 httpd:                        [确定]
正在启动 httpd:                      [确定]
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Lassen Sie es uns noch einmal testen, So konfigurieren Sie die Lese-/Schreibtrennung von Nginx

[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&#39;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>
Nach dem Login kopieren

Hinweis: Sie können sehen, dass wir die Datei erfolgreich hochgeladen haben, was darauf hinweist, dass die Nginx-Lese-/Schreibtrennungsfunktion konfiguriert ist. Werfen wir abschließend einen Blick auf die hochgeladene Datei.


[root@web1 ~]# setfacl -m u:apache:rwx /var/www/html/
Nach dem Login kopieren

Gesamtdosis 12

[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>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage