How to configure a highly available local code repository (such as GitLab) on Linux
As software development and teamwork become increasingly complex, the demand for code management and version control is also increasing. As an open source code hosting platform, GitLab is widely used in team collaborative development. In order to improve the reliability and stability of the code warehouse, we can configure a highly available local code warehouse so that it can automatically switch to a backup server when a single server fails, ensuring that the team's work is not affected.
This article will take configuring GitLab on a Linux system as an example to introduce how to implement a highly available local code repository.
1. Install and configure GitLab
There are many ways to install GitLab on a Linux system. Here we take CentOS as an example. , use yum to install.
First, add the software source of GitLab:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
Then, install GitLab:
sudo yum install -y gitlab-ee
After the installation is complete , we need to perform some basic configurations on GitLab, including setting the administrator account and password, and binding domain names, etc.
Configure by editing the configuration file/etc/gitlab/gitlab.rb
Configure:
sudo vi /etc/gitlab/gitlab.rb
Find the following line, uncomment it and modify it to the corresponding value:
external_url 'http://yourdomain.com'
After saving and exiting the configuration file, reconfigure GitLab:
sudo gitlab-ctl reconfigure
2. Configure a highly available local code repository
In order to achieve a highly available local code repository, we need Set up a primary server and a backup server, and distribute traffic to the two servers through load balancing.
The following is an example configuration. The primary server address is 192.168.0.1 and the backup server address is 192.168.0.2.
Install and configure a load balancer on both the primary server and the backup server. Here we use Nginx as load balancer.
First, install Nginx:
sudo yum install -y nginx
Then, edit the Nginx configuration file/etc/nginx/nginx.conf
:
sudo vi /etc/nginx/nginx.conf
In the http module Add the following configuration:
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; } } }
After saving and exiting the configuration file, restart the Nginx service:
sudo systemctl restart nginx
In Perform the following configuration on both the primary server and the backup server.
First, edit the GitLab configuration file/etc/gitlab/gitlab.rb
:
sudo vi /etc/gitlab/gitlab.rb
Find the following line and modify it to the corresponding value:
external_url 'http://yourdomain.com' gitlab_rails['gitlab_shell_ssh_port'] = 10022
Then, close the Nginx service that comes with GitLab, and add the following lines in/etc/gitlab/gitlab.rb
:
nginx['enable'] = false
After saving and exiting the configuration file, reconfigure GitLab :
sudo gitlab-ctl reconfigure
Finally, modify the SSH configuration file/etc/ssh/sshd_config
and change the SSH listening port to 10022:
sudo vi /etc/ssh/sshd_config
Find the following line and modify it For the corresponding value:
Port 10022
After saving and exiting the configuration file, restart the SSH service:
sudo systemctl restart sshd
3. Test the high availability configuration
After completing the above configuration, we can Conduct some tests to verify that the high availability configuration is working.
Enterhttp://yourdomain.com
in the browser to see if you can access the GitLab page normally. Refresh the page several times to confirm that you are accessing a different server each time.
Stop the GitLab service on the main server:
sudo gitlab-ctl stop
Then enterhttp: in the browser again: //yourdomain.com
, confirm whether to automatically switch to the backup server.
Through the above tests, we can confirm that the highly available local code repository has been successfully configured and effective.
When configuring a highly available local code repository, we used tools such as GitLab and Nginx and made relevant configurations. Through these configurations, we successfully configured a highly available local code warehouse on the Linux system. In this way, even if the main server fails, the backup server can take over, ensuring that the team's work is not affected and improving the reliability and stability of the code warehouse.
The above is the detailed content of How to configure a highly available local code repository (such as GitLab) on Linux. For more information, please follow other related articles on the PHP Chinese website!