2016-07-25 30 views
0

Ich habe mich gefragt, ob du erklären könntest, warum ich mein Problem beheben konnte, obwohl mein Problem behoben ist. Ich bin mir nicht sicher, warum es funktioniert und es vorher nicht im Setup funktioniert hat.nginx ... warum brauche ich den zusätzlichen Standortblock?

Die alte Einrichtung:

Ich habe Dateien unter der folgenden Adresse bedient: http://192.168.33.1:3000/bower_components/... zB (http://192.168.33.1:3000/bower_components/animate.css/animate.css)

Ich habe einen nginx Reverse-Proxy auf einrichten http://192.168.33.10:80/

Ich habe den folgenden Standortblock:

location /content { 
    proxy_pass http://192.168.33.1:3000/; 
    proxy_redirect off; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_max_temp_file_size 0; 
    client_max_body_size 10m; 
    client_body_buffer_size 128k; 
    proxy_connect_timeout 90; 
    proxy_send_timeout 90; 
    proxy_read_timeout 90; 
    proxy_buffer_size 4k; 
    proxy_buffers 4 32k; 
    proxy_busy_buffers_size 64k; 
    proxy_temp_file_write_size 64k; 
} 

In dieser Konfiguration würde die folgende URL laden: http://192.168.33.10/content/app/index.css

aber die folgende URL würde mir direkt laden würde nur gut 404, obwohl Zugriff auf die Datei geben: http://192.168.33.10/content/bower_components/animate.css/animate.css (oder irgendetwas anderes in dem bower_components Ordner für diese Angelegenheit)

Das Update:

Nachdem ich gefunden ein wenig herum zu spielen, wenn ich hinzugefügt, um den folgenden Speicherort Block, Dinge w Ould Arbeit:

location /content/bower_components { 
    proxy_pass http://192.168.33.1:3000/bower_components; 
} 

Ich verstehe, warum diese zusätzliche Lage Block funktionieren würde, aber ich verstehe nicht, warum der ursprüngliche Standort Block nicht die Regel des Zugabestelle Block umfassen haben, die ich hinzugefügt.

Irgendwelche Ratschläge, was los ist?

Antwort

0

Dies kann oder kann nicht die richtige Antwort sein, aber ...

Der Standort Block:

location /content { 
    proxy_pass http://192.168.33.1:3000/; 
    ... 
} 

ist URIs Aliasing mit /content zu / beginnen, die eine Abschluss / fehlt.

Ich würde verwenden:

location /content/ { 
    proxy_pass http://192.168.33.1:3000/; 
    ... 
} 

und dann den speziellen Fall von /content beheben, wenn Sie benötigen.

Ich weiß nicht, warum http://192.168.33.10/content/app/index.css scheint, obwohl zu arbeiten.

Weitere Informationen finden Sie unter this document.