Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So konfigurieren Sie die Lese-/Schreibtrennung von Nginx

So konfigurieren Sie die Lese-/Schreibtrennung von Nginx

WBOY
WBOYnach vorne
2023-05-18 15:19:571419Durchsuche

#?? 🎜🎜#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;
        }
    }
}

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:                      [确定]

5 # 🎜🎜#
[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, 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>

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/

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>

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen