1. Einfache Konfiguration
Konfigurieren Sie den Server, auf dem die Reverse-Proxy-Seite über den Upstream konfiguriert wird
ser nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream web {
server xxx.xxx.xxx.xxxx:8081;
}
server {
listen 80;
server_name localhost;
location /tomcat {
proxy_pass http://web/;
}
}
}
Wenn es sich zu diesem Zeitpunkt nur um die Proxy-Schnittstelle handelt, kann diese normal verwendet werden. Wenn es sich jedoch um eine Proxy-Seite handelt, treten Probleme wie CSS, JS usw. 404 auf, was dazu führt, dass die Seite nicht ordnungsgemäß funktioniert.
2. Statische Proxy-Dateien
Fügen Sie dem Server den folgenden Speicherort hinzu
location ~ .*\.(js|css)?$ {
expires 12h;
proxy_pass http://web;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|svg)?$ {
expires 12h;
proxy_pass http://web;
}
Nach dem Hinzufügen des statischen Ressourcen-Proxys ist die Funktion normal. Anhang: Wenn Sie statische Ressourcen unter einem bestimmten Pfad weiterleiten müssen, lesen Sie bitte:
Abschnitt 3-Inhalt in den statischen Ressourcen unter dem angegebenen Pfad .
3. Als Agent für mehrere Projekte fungieren
Beim Proxying mehrerer Projekte kann es mehreren Ports zugewiesen werden. Seine Referenzkonfiguration ist wie folgt:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream minio {
server xxx.xxx.xxx:9090;
}
upstream web {
server xxx.xxx.xxx:8081;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://minio;
}
location ~ .*\.(js|css)?$ {
expires off;
proxy_pass http://minio;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|svg)?$ {
expires off;
proxy_pass http://minio;
}
}
server {
listen 8081;
server_name localhost;
location / {
proxy_pass http://web;
}
location ~ .*\.(js|css)?$ {
expires off;
proxy_pass http://web;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|svg)?$ {
expires off;
proxy_pass http://web;
}
}
}
4. Zu beachtende Punkte
Wenn Sie gemäß der obigen Konfiguration immer noch nicht darauf zugreifen können, befolgen Sie die folgenden Punkte zur Fehlerbehebung:
- Ob der Firewall-Port geöffnet ist und der entsprechende Port geöffnet ist, können Sie mit Telnet überprüfen
- Wenn Nginx mit Docker gestartet wird, müssen mehrere Ports zugeordnet werden, da sonst nicht auf die entsprechenden Ports zugegriffen werden kann. Zur Überprüfung können Sie lsof -i:port außerhalb des Containers verwenden
Das Zuordnungsbeispiel (80- und 8081-Ports) beim Erstellen eines Containers durch Docker lautet wie folgt:
docker run \
-p 80:80 \
-p 8081:8081 \
--name nginx \
-v /home/map/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/map/nginx/conf:/etc/nginx/conf.d \
-v /home/map/nginx/log:/var/log/nginx \
-v /home/map/nginx/html:/usr/share/nginx/html \
-d f9c14fe76d50