Saat ini saya mencoba membuat nginx berfungsi dengan gitbucket menggunakan mengikuti tutorial ini .
Meskipun ini adalah wiki gitbucket resmi, halaman ini sangat tidak lengkap, dan saya perlu mengadaptasi beberapa detail dari panduan untuk apache , terutama awalannya, untuk membuat gitbucket bekerja dengan nginx.
Jadi hasil saya di sites-available/gitbucket
sini:
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;
}
}
Ketika saya mengaktifkannya gitbucket
berfungsi, jadi http://mydomain.xxx/gitbucket
redirect ke contoh gitbucket saya, tetapi kemudian nginx berhenti menyajikan file indeks apa pun yang saya tempatkan pada file saya /var/www/html
, dan sebaliknya melayani halaman indeks default yang disediakan ketika kita baru menginstalnya. Dan ketika menonaktifkan gitbucket, indeks dari html
folder disajikan lagi.
Saya sudah mencoba membuat tiket pada repo gitbucket tetapi saya tidak mendapatkan balasan yang memuaskan. Jadi, bisakah seseorang menjelaskan masalah ini kepada saya?
Terima kasih sebelumnya!
sumber
sites-enabled
membaca dalam urutan yang benar.sites-enabled
memeriksa konten file itu. Saat ini Anda memberi tahu nginx untuk merespons dengan blok yang hanya mendefinisikan/gitbucket
. Lihat Artikel Samudra Digitalgitbucket
(ive dibuat) dandefault
(yang dikirimkan dengan nginx). Tapi wiki itusites-enabled
menyiratkan saya perlu membuat file terpisah untuk menangani gitbucket.Jawaban:
Tutorial yang Anda tautkan memberikan contoh yang sangat spesifik untuk gitbucket.
Jika Anda mengatur situs menggunakan nginx Anda harus ingat bahwa setiap situs memiliki banyak pengaturan dan bahwa ada logika yang akan menentukan apa yang diutamakan kapan. Ini artikel laut digital berjudul "Memahami Nginx Server dan Lokasi Blok Seleksi Algoritma" tentang bagaimana yang ditentukan.
Dari apa yang Anda jelaskan di komentar, Anda berakhir dengan dua file situs. Satu menjadi file default tempat Anda mengatur root reguler untuk situs Anda dan satu untuk gitbucket yang baru saja berisi blok lokasi gitbucket dan (yang penting) arahan mendengarkan dan arahan nama server.
Langkah pertama yang dilakukan nginx untuk menentukan situs mana yang akan dikirimkan adalah untuk mencari tahu blok server apa yang digunakan. Karena saat ini Anda kemungkinan memiliki dua blok server dengan definisi yang sama. Blok gitbucket default dan Anda sedang mendengarkan port 80 untuk nama server yang sama. Jadi satu akan selalu menimpa yang lain.
Jika Anda ingin keduanya berfungsi, Anda memiliki beberapa opsi:
Blok lokasi, seperti namanya, hanya menetapkan pengaturan untuk lokasi yang sangat spesifik. Itu tidak benar-benar membutuhkan blok server independen, setidaknya tidak jika itu definisi dasar.
sumber