Ich habe nach der Antwort gesucht und ich glaube, die Antwort ist ziemlich einfach, aber ich konnte es nicht finden. Ich denke für meinen Mangel an Wissen über nginx ...nginx/flaschenpython - Route Anfrage an einen anderen Port
Ich habe meine Nginx-Instanz auf localhost: 8080 und meine Flasche Server hören auf localhost: 8081. Wenn ich die Adressen vom Browser öffne, funktionieren sie gut, aber wenn ich versuche, auf die Anwendung zuzugreifen, die ich auf localhost: 8080 ausführe, kann ich die vom Bottle-Server generierten Ressourcen nicht abrufen.
Was ich tun muss, ist umleiten alle Anrufe an den/Daten/Pfad zu der gleichen Domäne (localhost) aber einen anderen Port (8081), der, wo mein Flaschen-Server zuhört. Hier
ist der Code: Nginx:
server {
listen 8080;
server_name localhost;
root /Users/Diego/Desktop;
location/{
index index.html index.htm;
}
location /data/ {
proxy_pass http://127.0.0.1:8081;
}
}
Bottle Server:
@route('/')
def printtest():
print 'success'
return 'loaded page'
@route('/<scenename>/data/<filename:path>')
def testMethod(scenename,filename):
print scenename, filename
run(host='localhost', port=8081, debug=True)
im Browser aufrufen, localhost: 8080, zeigt mir die Seite über nginx serviert, aber dann, wenn Ich rufe einen Link auf, um etwas in /data/directory/filename.json abzurufen, die Flasche scheint die Anfrage nicht zu erhalten. Die Fehlerprotokoll-Status:
2013/04/16 18:50:52 [error] 3544#10612: *69 CreateFile() "C:/Users/Diego/Desktop/project1/data/directory/directory-varietal.json" failed (3: The system cannot find the path specified), client: 127.0.0.1, server: localhost, request: "GET /project1/data/directory/directory-varietal.json HTTP/1.1", host: "localhost:8081", referrer: "http://localhost:8080/project1/"
kann mir jemand sagen, wie man mit dieser Art von Redirect/Routing?
Und gibt es eine Möglichkeit, einen Feed in einem Protokoll von Nginx zu drucken? Wie ein Befehl print_entry oder ähnliches?
Danke!
EDIT: Ich habe versucht, dies aber kein Ergebnis ... https://serverfault.com/questions/208656/routing-to-various-node-js-servers-on-same-machine
EDIT: Ok einige Verbesserungen, fand ich, dass wahrscheinlich eine Frage der Abfrage Lage ist. Wenn dieser Block eine JSON-Datei anfordert, fragt er den Bottle-Server ab.
location ~* \.(json)$ {
proxy_pass http://localhost:8081;
}
BEARBEITEN SIE: Yeee! Ich habe eine Lösung gefunden ... es stellte sich heraus, dass es ein Problem mit dem am Ort definierten Pfad war. Notiz an mich selbst: Lesen Sie sorgfältig das Handbuch: http://wiki.nginx.org/HttpCoreModule#location
neuen Code für den Server:
server {
listen 8080;
server_name localhost;
root /Users/Diego/Desktop;
location/{
index index.html index.htm;
}
location ~* /data/ {
proxy_pass http://localhost:8081;
}
}
Wie dem auch sei, wenn jemand eine bessere Lösung hat oder jeder Vorschlag ist dann zu leisten begrüßen.
Freut mich zu hören, dass Sie es gelöst haben - und danke, dass Sie zurückkommen, um die Lösung zu posten! –
@Dieghito, bitte posten Sie Ihr Update als eine richtige Antwort. Es ist akzeptabel, Ihre eigene Frage zu beantworten. – Rod
Danke @Rod, fertig. – Dieghito