it-swarm.com.de

nginx proxy_pass mit Unterordner

ok, diese aufgabe sollte einfach sein, aber ich kann sie einfach nicht zum arbeiten bringen. Ich möchte einen Unterordner nach meinem Domainnamen (tatsächlich nach der IP dieses Domainnamens) haben, der zu einem bestimmten Port auf demselben Server umleitet. Im Wesentlichen möchte ich nicht mehr viele Ports verwenden müssen.

Hier ist meine Nginx-Konfiguration dafür

server {
    listen 80;

    index index.html index.htm index.nginx-debian.html index.php;

    server_name aaa.bbb.ccc.ddd;

    location ^~ /app2 {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $Host;
        proxy_pass http://aaa.bbb.ccc.ddd:8001;
    }
}

Beim Zugriff auf aaa.bbb.ccc.ddd/app2 möchte ich dies in http: //aaa.bbb.ccc.ddd: 8001 auflösen.

Dies kann möglicherweise so kompliziert sein. Was fehlt mir hier?

Vielen Dank, Pat

11
pAt84

Da Sie dies als Reverse-Proxy-Frage markiert haben, gehen Sie davon aus, dass Sie die Anfrage als Proxy verwenden möchten, damit der Benutzer nur die URL http://aaa.bbb.ccc.ddd/app2 In seinem Browser sieht.

Sie können Ihren location Block folgendermaßen ändern:

location ~/app2(.*)$ {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $Host;
    proxy_pass http://aaa.bbb.ccc.ddd:8001$1;
}

Hier erfassen wir den URI-Teil nach der Variablen /app2 In $1 Und verwenden ihn in der Direktive proxy_pass.

12
Tero Kilkanen