Obecnie próbuję zmusić nginx do pracy z gitbucket, korzystając z tego samouczka .
Chociaż jest to oficjalna wiki gitbucket, ta strona jest bardzo niekompletna i muszę dostosować niektóre szczegóły z przewodnika po apache , głównie przedrostek, aby gitbucket działał z nginx.
Więc mój wynik sites-available/gitbucket
jest tutaj:
server {
listen 80; # The default is 80 but this here if you want to change it.
server_name mydomain.xxx;
location /gitbucket {
proxy_pass http://localhost:8080/gitbucket;
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_connect_timeout 150;
proxy_send_timeout 100;
proxy_read_timeout 100;
proxy_buffers 4 32k;
client_max_body_size 500m; # Big number is we can post big commits.
client_body_buffer_size 128k;
}
}
Po włączeniu gitbucket
działa, więc http://mydomain.xxx/gitbucket
przekierowuje do mojej instancji gitbucket, ale wtedy nginx przestaje wyświetlać dowolny plik indeksu, który na nim umieściłem /var/www/html
, i zamiast tego wyświetla domyślną stronę indeksu dostarczoną, gdy świeżo go instalujemy. Po wyłączeniu gitbucket indeks z html
folderu jest ponownie wyświetlany.
Próbowałem zrobić bilet na repozytorium gitbucket, ale nie dostałem zadowalającej odpowiedzi. Więc czy ktoś może rzucić mi światło na ten problem?
Z góry dziękuję!
źródło
sites-enabled
czytasz je we właściwej kolejności.sites-enabled
sprawdzenia zawartości tego pliku. Obecnie mówisz nginx, aby odpowiedział blokiem, który tylko definiuje/gitbucket
. Przeczytaj artykułgitbucket
(ive utworzony) idefault
(ten dostarczany z nginx). Ale wiki pozostawia niejawne, że muszę utworzyć oddzielnysites-enabled
plik, aby poradzić sobie z gitbucket.Odpowiedzi:
Samouczek, który połączyłeś, daje bardzo konkretny przykład dla gitbucket.
Jeśli konfigurujesz witryny za pomocą nginx, musisz pamiętać, że każda witryna ma kilka ustawień i że istnieje logika, która określi, co ma pierwszeństwo. Artykuł o oceanach cyfrowych zatytułowany „Zrozumienie algorytmów wyboru serwera Nginx i bloków lokalizacji” o tym, jak to ustalono.
Z tego, co wyjaśniłeś w swoich komentarzach, otrzymałeś dwa pliki witryny. Jeden jest domyślnym plikiem, w którym ustawiasz swój zwykły katalog główny dla swojej witryny, a drugi dla gitbucket, który właśnie zawierał blok lokalizacji gitbucket i (co jest ważne) dyrektywę Listen i dyrektywę nazw serwerów.
Pierwszym krokiem nginx jest ustalenie, która witryna ma zostać dostarczona, aby dowiedzieć się, którego bloku serwera użyć. W tej chwili prawdopodobnie masz dwa bloki serwerów o tej samej definicji. Domyślny i blok gitbucket nasłuchują na porcie 80 dla tej samej nazwy serwera. Więc jedno zawsze będzie nadpisywać drugie.
Jeśli chcesz, aby oba działały, masz kilka opcji:
Blok lokalizacji, jak sama nazwa wskazuje, po prostu określa ustawienia dla bardzo konkretnej lokalizacji. Tak naprawdę nie potrzebuje niezależnego bloku serwera, przynajmniej jeśli jest to tak podstawowa definicja.
źródło