Rumah > Artikel > Operasi dan penyelenggaraan > Bagaimana untuk mengkonfigurasi repositori kod tempatan yang sangat tersedia (seperti GitLab) di Linux
Cara mengkonfigurasi repositori kod tempatan yang sangat tersedia (seperti GitLab) pada Linux
Apabila pembangunan perisian dan kerja berpasukan menjadi semakin kompleks, permintaan untuk pengurusan kod dan kawalan versi juga semakin meningkat. Sebagai platform pengehosan kod sumber terbuka, GitLab digunakan secara meluas dalam pembangunan kerjasama pasukan. Untuk meningkatkan kebolehpercayaan dan kestabilan gudang kod, kami boleh mengkonfigurasi gudang kod tempatan yang sangat tersedia supaya ia boleh bertukar secara automatik kepada pelayan sandaran apabila pelayan tunggal gagal, memastikan kerja pasukan tidak terjejas.
Artikel ini akan mengambil mengkonfigurasi GitLab pada sistem Linux sebagai contoh untuk memperkenalkan cara melaksanakan repositori kod tempatan yang sangat tersedia.
1. Pasang dan konfigurasikan GitLab
Terdapat banyak cara untuk memasang GitLab pada sistem Linux Di sini kami mengambil CentOS sebagai contoh dan menggunakan yum untuk memasangnya.
Mula-mula, tambah sumber perisian GitLab:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
Kemudian, pasang GitLab:
sudo yum install -y gitlab-ee
Selepas pemasangan selesai, kami perlu melakukan beberapa konfigurasi asas dan kata laluan pada GitLab , dan Ikat nama domain, dsb.
Konfigurasikan dengan mengedit fail konfigurasi /etc/gitlab/gitlab.rb
: /etc/gitlab/gitlab.rb
进行配置:
sudo vi /etc/gitlab/gitlab.rb
找到以下行,将其取消注释并修改为对应的值:
external_url 'http://yourdomain.com'
保存并退出配置文件后,重新配置GitLab:
sudo gitlab-ctl reconfigure
二、配置高可用的本地代码仓库
为了实现高可用的本地代码仓库,我们需要设置一个主服务器和一个备用服务器,并通过负载均衡将流量分发到这两台服务器上。
下面是一个示例的配置,主服务器地址为192.168.0.1,备用服务器地址为192.168.0.2。
在主服务器和备用服务器上都安装和配置一个负载均衡器。这里我们使用Nginx作为负载均衡器。
首先,安装Nginx:
sudo yum install -y nginx
然后,编辑Nginx的配置文件/etc/nginx/nginx.conf
:
sudo vi /etc/nginx/nginx.conf
在http模块中添加以下配置:
http { upstream gitlab { server 192.168.0.1:80 weight=5; server 192.168.0.2:80 weight=1 backup; } server { listen 80; server_name yourdomain.com; location / { proxy_pass http://gitlab; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } } }
保存并退出配置文件后,重新启动Nginx服务:
sudo systemctl restart nginx
在主服务器和备用服务器上都进行如下配置。
首先,编辑GitLab的配置文件/etc/gitlab/gitlab.rb
:
sudo vi /etc/gitlab/gitlab.rb
找到以下行,将其修改为对应的值:
external_url 'http://yourdomain.com' gitlab_rails['gitlab_shell_ssh_port'] = 10022
然后,关闭GitLab自带的Nginx服务,在/etc/gitlab/gitlab.rb
添加以下行:
nginx['enable'] = false
保存并退出配置文件后,重新配置GitLab:
sudo gitlab-ctl reconfigure
最后,修改SSH配置文件/etc/ssh/sshd_config
,将SSH的监听端口改为10022:
sudo vi /etc/ssh/sshd_config
找到以下行,将其修改为对应的值:
Port 10022
保存并退出配置文件后,重新启动SSH服务:
sudo systemctl restart sshd
三、测试高可用配置
完成以上配置后,我们可以进行一些测试来验证高可用的配置是否生效。
在浏览器中输入http://yourdomain.com
,查看是否能够正常访问GitLab页面。刷新页面多次,确认每次访问到的是不同的服务器。
在主服务器上停止GitLab服务:
sudo gitlab-ctl stop
然后,再次在浏览器中输入http://yourdomain.com
rrreee
rrreee
Simpan dan keluar dari konfigurasi fail Akhir sekali, konfigurasi semula GitLab:rrreee
2. Konfigurasikan repositori kod tempatan yang sangat tersedia 🎜🎜 Untuk mencapai repositori kod tempatan yang sangat tersedia, kita perlu menyediakan pelayan utama dan pelayan sandaran, dan mengedarkan trafik kepada kedua-dua ini melalui pengimbangan beban pada pelayan. 🎜🎜Berikut ialah contoh konfigurasi, alamat pelayan utama ialah 192.168.0.1 dan alamat pelayan sandaran ialah 192.168.0.2. 🎜🎜🎜Pasang dan konfigurasikan pengimbangan beban 🎜🎜🎜Pasang dan konfigurasikan pengimbang beban pada kedua-dua pelayan utama dan sandaran. Di sini kami menggunakan Nginx sebagai pengimbang beban. 🎜🎜Mula-mula, pasang Nginx: 🎜rrreee🎜Kemudian, edit fail konfigurasi Nginx/etc/nginx/nginx.conf
: 🎜rrreee🎜Tambah konfigurasi berikut dalam modul http: 🎜rreee🎜Save and exit Selepas mengkonfigurasi fail, mulakan semula perkhidmatan Nginx: 🎜rrreee🎜🎜Konfigurasikan pelayan utama dan pelayan sandaran🎜🎜🎜Konfigurasikan yang berikut pada kedua-dua pelayan utama dan pelayan sandaran. 🎜🎜Mula-mula, edit fail konfigurasi GitLab /etc/gitlab/gitlab.rb
: 🎜rrreee🎜Cari baris berikut dan ubah suainya kepada nilai yang sepadan: 🎜rrreee🎜Kemudian, tutup perkhidmatan Nginx GitLab sendiri, tambah baris berikut dalam /etc/gitlab/gitlab.rb
: 🎜rrreee🎜Selepas menyimpan dan keluar dari fail konfigurasi, konfigurasi semula GitLab: 🎜rrreee🎜Akhir sekali, ubah suai fail konfigurasi SSH / etc /ssh/sshd_config
, tukar port mendengar SSH kepada 10022: 🎜rrreee🎜Cari baris berikut dan ubah suainya kepada nilai yang sepadan: 🎜rrreee🎜Selepas menyimpan dan keluar dari fail konfigurasi, mulakan semula perkhidmatan SSH: 🎜 rrreee 🎜3. Uji konfigurasi ketersediaan tinggi🎜🎜Selepas melengkapkan konfigurasi di atas, kami boleh menjalankan beberapa ujian untuk mengesahkan sama ada konfigurasi ketersediaan tinggi berkuat kuasa. 🎜🎜🎜Uji pengimbangan beban🎜🎜🎜Masukkan http://yourdomain.com
dalam penyemak imbas untuk melihat sama ada anda boleh mengakses halaman GitLab seperti biasa. Muat semula halaman beberapa kali untuk mengesahkan bahawa anda mengakses pelayan yang berbeza setiap kali. 🎜🎜🎜Uji penukaran aktif/siap sedia🎜🎜🎜Hentikan perkhidmatan GitLab pada pelayan utama: 🎜rrreee🎜Kemudian masukkan http://yourdomain.com
dalam penyemak imbas sekali lagi untuk mengesahkan sama ada ia bertukar secara automatik kepada pelayan siap sedia. 🎜🎜Melalui ujian di atas, kami boleh mengesahkan bahawa repositori kod tempatan yang sangat tersedia telah berjaya dikonfigurasikan dan berkesan. 🎜🎜Apabila mengkonfigurasi repositori kod tempatan yang sangat tersedia, kami menggunakan alatan seperti GitLab dan Nginx dan membuat konfigurasi yang berkaitan. Melalui konfigurasi ini, kami berjaya mengkonfigurasi repositori kod tempatan yang sangat tersedia pada sistem Linux. Dengan cara ini, walaupun pelayan utama gagal, pelayan sandaran boleh mengambil alih, memastikan kerja pasukan tidak terjejas dan meningkatkan kebolehpercayaan dan kestabilan gudang kod. 🎜Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi repositori kod tempatan yang sangat tersedia (seperti GitLab) di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!