Membalikkan gitbucket proxing melalui nginx


1

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/gitbucketsini:

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 gitbucketberfungsi, jadi http://mydomain.xxx/gitbucketredirect 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 htmlfolder 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!


Pastikan Anda sites-enabledmembaca dalam urutan yang benar.
Seth

Maaf, saya tidak mengerti apa yang Anda maksud dengan "urutan yang benar". Saya seorang pemula di nginx (selalu menggunakan apache).
Vico

Anda mungkin masih memiliki lebih dari satu file dalam sites-enabledmemeriksa konten file itu. Saat ini Anda memberi tahu nginx untuk merespons dengan blok yang hanya mendefinisikan /gitbucket. Lihat Artikel Samudra Digital
Seth

Saya sudah. gitbucket(ive dibuat) dan default(yang dikirimkan dengan nginx). Tapi wiki itu sites-enabledmenyiratkan saya perlu membuat file terpisah untuk menangani gitbucket.
Vico

1
Tidak. Ini contoh, tetapi Anda tidak perlu memiliki file terpisah. Anda dapat dengan mudah menempatkan blok lokasi di file default atau sebaliknya. Anda tidak dapat memiliki dua file dengan directive listening dan name name server yang sama. Seseorang akan selalu diutamakan.
Seth

Jawaban:


1

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:

  • Tetapkan salah satu situs ke port lain menggunakan arahan mendengarkan.
  • Ubah nama server untuk kedua situs. Ini juga bisa mencakup sub domain. Kapan saja ini berfungsi atau tidak, mungkin bergantung pada konfigurasi DNS untuk situs.
  • Cukup sertakan blok lokasi dari konfigurasi gitbucket Anda di file default Anda.

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.


1
Iya! Itulah yang saya lakukan: Baru saja memasukkan lokasi secara default. Terima kasih telah meresmikannya!
Vico
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.