[Nginx][Gogs] Служение гогам через nginx

У меня проблема с настройкой Gogs через Nginx на моей малине.

Я просто хочу иметь возможность перенаправить http://raspberry-ip-address:3000/ на http://raspberry-ip-address/gogs.

Ниже мой конф виртуальный хост nginx:

server {
    listen 80;
    server_name localhost;

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

Когда я захожу на http:// raspberry-ip-address:3000, я получаю страницу установки от gogs ->, поэтому Gogs работает хорошо.

Когда я захожу на http: // raspberry-ip-address / gogs, я получаю ошибку 404 Не найдено. однако журнал от Gogs как-то "реагирует", потому что я получаю:

[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==

Для получения дополнительной информации вот мой 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"

Мне кажется, что Nginx неправильно перенаправляет запрос. Любая идея?

Спасибо;)

1 ответ

Решение

У меня работает следующий конфиг:

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

но следующее (то, что вы опубликовали) приводит к указанной вами ошибке:

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

Обратите внимание / и и URL.

HTTP перенаправление (30x) не решает проблему, потому что оно будет перенаправлено на localhost который не Raspberry Pi, а компьютер, который делает запрос.

Завершите nginx conf в /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;
        }
    }   
}
Другие вопросы по тегам