2016-08-24 2 views
0

Ich bin durch ein Problem durch Gogs durch Nginx auf meiner Himbeere laufen.[Nginx] [Gogs] Serving Gogs durch Nginx

Ich möchte nur http://raspberry-ip-address:3000 zu http://raspberry-ip-address/gogs umleiten können.

Unter meinem nginx Virtual CONF:

server { 
    listen 80; 
    server_name localhost; 

    location /gogs/ { 
     proxy_pass http://localhost:3000; 
    } 
} 

Wenn ich auf http: // Himbeer-ip-Adresse: 3000, erhalte ich die Installationsseite von gogs -> so ist Gogs gut runnning.

Wenn ich auf http: // Himbeer-IP-Adresse/Gogs gehe, bekam ich einen 404 Not Found Fehler. aber das Protokoll von Gogs ist irgendwie „reagieren“, weil ich:

[Macaron] 2016-08-24 14:40:30: Started GET /gogs/ for 127.0.0.1 
[Macaron] 2016-08-24 14:40:30: Completed /gogs/ 302 Found in 1.795306ms 
2016/08/24 14:40:30 [D] Session ID: 8e0bbb6ab5478dde 
2016/08/24 14:40:30 [D] CSRF Token: YfL58XxZUDgwim9qBCosC7EXIGM6MTQ3MTk4MDMxMzMxMTQ3MjgzOQ== 

Weitere Informationen hier ist mein nginx/error.log:

request: "GET /localhost HTTP/1.1", host: "192.168.1.15" 
2016/08/24 14:40:30 [error] 3191#0: *4 open() "/usr/share/nginx/html/install" failed (2: No such file or directory), client: 192.168.1.12, server: localhost, request: "GET /install HTTP/1.1", host: "192.168.1.15" 

Es scheint mir, dass Nginx nicht richtig umgeleitet die Anfrage. Irgendeine Idee ?

Dank;)

+0

Does [Dieser Beitrag] (https://serverfault.com/questions/379675/nginx-reverse-proxy-url-rewrite) helfen Sie? – syntonym

+0

Nicht wirklich, ich habe jede Antwort aus diesem Post versucht. Die Einrichtung funktioniert, wenn mein nginx conf wie folgt ist: Server { hören 80; Servername Localhost; Standort/{ proxy_pass http: // localhost: 3000; } } – Guillaume

+0

Also überschreibt das Neuschreiben nicht die URL? Oder passiert das Umschreiben, aber irgendwie bekommt gog immer noch '/ gogs /'? Bekommt es '/ gogs /', auch wenn du es woanders hingestellt hast wie '/ git /'? – syntonym

Antwort

1

Für mich ist die folgende Konfiguration funktioniert:

location /gogs/ { 
    proxy_pass http://localhost:3000/; 
} 

aber die folgende (was Sie auf dem Laufenden) den Fehler, den Sie erwähnt:

location /gogs/ { 
    proxy_pass http://localhost:3000; 
} 

Note der / und der und der URL.

A HTTP Redirect (30x) hat nicht das Problem zu lösen, weil es zu localhost umleitet was nicht der Himbeere pi ist aber der Computer, der die Anforderung macht.

komplett nginx conf in /etc/nginx/nginx.conf:

user nginx; 
worker_processes 1; 

events { 
    worker_connections 1024; 
} 


http { 
    include  mime.types; 
    default_type application/octet-stream; 

    sendfile  on; 

    keepalive_timeout 65; 

    server { 
     listen  80; 
     server_name localhost; 


     location/{ 
      root /usr/share/nginx/html; 
      index index.html index.htm; 
     } 

     location /git/ { 
      proxy_pass http://127.0.0.1:3333/; 
     } 

     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root /usr/share/nginx/html; 
     } 
    } 
} 
+0

Könnten Sie mir die ganze Datei nginx conf posten? – Guillaume

+0

Weil du ja recht hast. Es umleiten meine Anfrage an den Computer localhost (und nicht das Pi) – Guillaume

+0

Wenn es immer noch nicht für Sie funktioniert ..Ich bin auf Nginx Version 1.10.1-1, vielleicht haben Sie eine alte Version? Hast du Gog irgendwie konfiguriert, um das Präfix anzunehmen? – syntonym