Ich kann nicht herausfinden, wie ich umleiten /
soll index.html
. Ich habe die Threads zu Serverfault durchgesehen und ich glaube, ich habe jeden Vorschlag ausprobiert, einschließlich:
- Schreiben Sie die Anweisungen innerhalb von neu
location /
index index.html
auf derserver
Ebene innerhalblocation /
und innerhalb des statischen Inhalts- Verschieben von
node.js
Proxy-Anweisungen nachlocation ~ /i
statt nach innenlocation /
Offensichtlich stimmt irgendwo anders in meiner Konfiguration etwas nicht. Hier ist meine nginx.conf:
worker_processes 1;
pid /home/logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
error_log /home/logs/error.log;
access_log /home/logs/access.log combined;
include sites-enabled/*;
}
und meine Serverkonfiguration befindet sich in sites-enabled
server {
root /home/www/public;
listen 80;
server_name localhost;
# proxy request to node
location / {
index index.html index.htm;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3010;
proxy_redirect off;
break;
}
# static content
location ~ \.(?:ico|jpe?g|jpeg|gif|css|png|js|swf|xml|woff|eot|svg|ttf|html)$ {
access_log off;
add_header Pragma public;
add_header Cache-Control public;
expires 30d;
}
gzip on;
gzip_vary on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_min_length 1000;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
}
Alles andere funktioniert gut. Anforderungen werden korrekt an den Knoten weitergeleitet und statischer Inhalt wird korrekt bereitgestellt. Ich muss nur in der Lage sein , Anfragen gemacht weiterleiten /
zu /index.html
.
root html
im Standortblock erreichen wollen. Befindet sich Ihre index.html in / home / www / public / html? Ich habe nur absolute Pfade verwendet."GET / HTTP/1.1" 404
. Nichts deutet darauf hin, dass es sogar versucht, index.html zu treffen. Der Anruf wird schließlich an meinen Knotenserver weitergeleitet, auf dem eine Fehlerseite angezeigt wird.Antworten:
Grundsätzlich wurde in der
root
Direktive (innerhalb des Standortblocks) nicht der vollständige Pfad erwähnt . Außerdem;
fehlt am Ende derindex
Direktive ein (könnte ein Tippfehler sein, nginx fängt diese Tippfehler normalerweise ab).Ihre Serverkonfiguration in Sites-fähigen würde also so aussehen (nach den beiden oben genannten Änderungen) ...
quelle
/
führt immer noch zu einem 404.index
Anweisung bitte außerhalb des Standortblocks platzieren? Ich aktualisiere jetzt auch meine Konfigurationsdatei. Vielen Dank.localhost/index.html
funktioniertlocalhost
und führtlocalhost/
immer noch zu einem 404. Das Zugriffsprotokoll gibt immer noch 404 an, das Fehlerprotokoll enthält nichts./
wird immer noch direkt an meinen Knotenserver weitergeleitet.location / { try_files $uri $uri/ @proxy; }
oben genanntelocation @proxy
Richtlinie beizubehalten.