


Wie kann Nginx mehrere Sites effizient auf einem Server bereitstellen?
Werfen wir einen Blick auf unsere Anforderungen? Ich habe drei Website-Projekte, die bereitgestellt werden müssen (entsprechend drei Domänennamen, um den Zugriff auf den entsprechenden Domänennamen zu ermöglichen, um zur entsprechenden Website zu springen).
Werfen wir einen Blick auf das Architekturdiagramm, das ich zur Lösung dieses Problems entworfen habe:
Hier gehen wir davon aus, dass die öffentliche IP-Adresse des Linux-Servers im Diagramm 192.168.2.100 ist, und gehen dann davon aus, dass dies erforderlich ist Erstellen Sie diese drei Server auf diesem Server: www.nginxtest.net, admin.nginxtest.net, app.nginxtest.net.
Okay, lass es uns im Detail konfigurieren:
1. Konfigurieren Sie den Nginx-Reverse-Proxy.
Wir stellen immer noch zuerst eine Verbindung zu SSH her und führen dann die folgenden Vorgänge aus (im Allgemeinen wird nicht empfohlen, die Standard-Hauptkonfigurationsdatei von Nginx zu ändern. conf, also erstellen wir eine neue Die Lastausgleichskonfigurationsdatei fxdl.conf gewährleistet die Serversicherheit wie folgt):
$ ssh root@192.168.2.100 //ssh连接 # cd /usr/local/nginx/conf # touch fxdl.conf //创建代理配置文件 # vi fxdl.conf //用vi编辑器打开文件,然后按键盘的i
Hinweis: Drücken Sie im vi-Editor i auf der Tastatur, um in den Einfügestatus zu gelangen, und drücken Sie esc, um den zu verlassen Zustand einfügen.
Dann geben Sie den folgenden Konfigurationscode ein (passen Sie den Domänennamenteil an Ihren eigenen Domänennamen an und aktivieren Sie den Kommentarteil nach Bedarf):
#设置低权限用户,为了安全而设置的 user nobody; #工作衍生进程数 worker_processes 4; #设置错误文件存放路径 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #设置pid存放路径(pid是控制系统中重要文件) #pid logs/nginx.pid; #设置最大连接数 events{ worker_connections 1024; } http { #用来设置日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #用来指定日志文件的存放路径 access_log /data/wwwlogs/access_nginx.log main; #开启高效文件传输模式 sendfile on; #防止网络阻塞 tcp_nopush on; #防止网络阻塞 tcp_nodelay on; #长连接超时时间,单位是秒 keepalive_timeout 65; #散列表的冲突率,默认1024,越大则内存消耗更多,但散列key的冲突率会降低,检索速度就更快 types_hash_max_size 2048; #文件扩展名与文件类型映射表 include /usr/local/nginx/conf/mime.types; #默认文件类型 default_type application/octet-stream; #include /etc/nginx/conf.d/*.conf; #主要是用于设置一组可以在proxy_pass和fastcgi_pass指令中使用额代理服务器,默认负载均衡方式为轮询 upstream tomcat_client { server localhost:8080; } #开启gzip压缩,开启后,访问网页会自动压缩 #gzip on; #指定服务器的名称和参数 server { listen 80; server_name app.nginxtest.net; location / { proxy_pass http://tomcat_client; proxy_redirect default; #设置代理 proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; } } server { listen 80; server_name admin.nginxtest.net; location / { proxy_pass http://tomcat_client; proxy_redirect default; proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; } } server { listen 80; server_name www.nginxtest.net; location / { proxy_pass http://tomcat_client; proxy_redirect default; proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; } location = / { #判断是否为手机移动端 if ($http_user_agent ~* '(iphone|ipod|ipad|android|windows phone|mobile|nokia)') { rewrite . http://www.nginxtest.net/phone break; } rewrite . http://www.nginxtest.net/pc break; } } }
Okay, so einfach ist das, der Nginx-Reverse-Proxy ist konfiguriert. Kommen Sie herunter und konfigurieren Sie Tomcat:
2. Konfigurieren Sie Tomcat für die Bereitstellung mehrerer Sites
$ ssh root@192.168.2.100 //ssh连接 # cd /usr/local/tomcat # cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml_bk //备份server.xml原文件 # vi server.xml //用vi编辑器打开文件,然后按键盘的i
Wir bearbeiten server.xml und fügen den folgenden Hostknoten unter dem Engine-Knoten hinzu (der Domänenname und das Site-Projektverzeichnis im Knoten müssen vorhanden sein). angepasst und an Ihre eigenen Bedürfnisse angepasst:
<host name="www.nginxtest.net" unpackwars="true" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"> <context path="/" docbase="/data/wwwroot/www.nginxtest.net/webcontent" reloadable="true"/> </host> <host name="admin.nginxtest.net" unpackwars="true" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"> <context path="/" docbase="/data/wwwroot/admin.nginxtest.net/webcontent" reloadable="true"/> </host> <host name="app.nginxtest.net" unpackwars="true" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"> <context path="/" docbase="/data/wwwroot/app.nginxtest.net/webcontent" reloadable="true"/> </host>
Hinweis: Wenn Sie direkt auf die öffentliche IP-Adresse zugreifen möchten, ohne den Webseiteneffekt zu verursachen, löschen Sie einfach das
<host name="localhost" ..>..</host>
unter dem Engine-Knoten.
Drücken Sie nach Abschluss der Eingabe die Esc-Taste und geben Sie dann Folgendes ein:
:wq!
, um die Konfigurationsdatei zu speichern und zu verlassen. Zu diesem Zeitpunkt ist auch Tomcat konfiguriert.
Als nächstes können wir unsere Multiple-Site-Engineering-Codes unter /data/wwwroot/ platzieren. Starten Sie dann Nginx und Tomcat.
Jetzt können Sie es ausprobieren und auf die Second-Level-Domainnamen www.nginxtest.net, admin.nginxtest.net, app.nginxtest.net jeder Site zugreifen. Wir haben festgestellt, dass wir zur entsprechenden Site (und jeder) springen können Site: Stellen Sie einen Server separat bereit und sehen Sie den gleichen Effekt).
Das obige ist der detaillierte Inhalt vonWie kann Nginx mehrere Sites effizient auf einem Server bereitstellen?. 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.

Schritte zum lokalen Ausführen von ThinkPHP Framework: Laden Sie ThinkPHP Framework herunter und entpacken Sie es in ein lokales Verzeichnis. Erstellen Sie einen virtuellen Host (optional), der auf das ThinkPHP-Stammverzeichnis verweist. Konfigurieren Sie Datenbankverbindungsparameter. Starten Sie den Webserver. Initialisieren Sie die ThinkPHP-Anwendung. Greifen Sie auf die URL der ThinkPHP-Anwendung zu und führen Sie sie aus.

Die Start- und Stoppbefehle von Nginx lauten nginx bzw. nginx -s quit. Der Startbefehl startet den Server direkt, während der Stoppbefehl den Server ordnungsgemäß herunterfährt, sodass alle aktuellen Anforderungen verarbeitet werden können. Weitere verfügbare Stoppsignale sind Stopp und Nachladen.

Um den Fehler „Willkommen bei Nginx!“ zu beheben, müssen Sie die Konfiguration des virtuellen Hosts überprüfen, den virtuellen Host aktivieren, Nginx neu laden. Wenn die Konfigurationsdatei des virtuellen Hosts nicht gefunden werden kann, erstellen Sie eine Standardseite und laden Sie Nginx neu. Anschließend wird die Fehlermeldung angezeigt verschwindet und die Website wird normal angezeigt.

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

Um sich für phpMyAdmin zu registrieren, müssen Sie zunächst einen MySQL-Benutzer erstellen und ihm Berechtigungen erteilen, dann phpMyAdmin herunterladen, installieren und konfigurieren und sich schließlich bei phpMyAdmin anmelden, um die Datenbank zu verwalten.

Nginx erscheint beim Zugriff auf die Website. Die Gründe können sein: Serverwartung, ausgelasteter Server, Browser-Cache, DNS-Probleme, Firewall-Blockierung, Website-Fehlkonfiguration, Netzwerkverbindungsprobleme oder die Website ist ausgefallen. Probieren Sie die folgenden Lösungen aus: Warten Sie, bis die Wartungsarbeiten beendet sind, besuchen Sie die Website außerhalb der Hauptverkehrszeiten, leeren Sie Ihren Browser-Cache, leeren Sie Ihren DNS-Cache, deaktivieren Sie Firewall- oder Antivirensoftware, wenden Sie sich an den Site-Administrator, überprüfen Sie Ihre Netzwerkverbindung oder verwenden Sie eine Suchmaschine oder Webarchiv, um eine weitere Kopie der Website zu finden. Wenn das Problem weiterhin besteht, wenden Sie sich bitte an den Site-Administrator.

In der Docker-Umgebung gibt es fünf Methoden für die Containerkommunikation: freigegebenes Netzwerk, Docker Compose, Netzwerk-Proxy, freigegebenes Volume und Nachrichtenwarteschlange. Wählen Sie abhängig von Ihren Isolations- und Sicherheitsanforderungen die am besten geeignete Kommunikationsmethode, z. B. die Nutzung von Docker Compose zur Vereinfachung von Verbindungen oder die Verwendung eines Netzwerk-Proxys zur Erhöhung der Isolation.
