Konfiguration des Nginx-Proxys nginx.conf – Reverse-Proxy

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

Supongo que te gusta

Origin blog.csdn.net/pp_lan/article/details/131555856
Recomendado
Clasificación