docker环境的搭建参考
阿里云CentOS8_x86_64_搭建Docker环境
Gitlab环境的搭建参考
阿里云CentOS8_x86_64_docker-compose 搭建Gitlab
MantisBT环境的搭建参考
阿里云CentOS8_x86_64_docker-compose 搭建Mantis
Haproxy 安装与配置
Haproxy目的
计划在同一台服务器上搭建maints与Gitlab 服务
使用Haproxy 进行80/443端口 代理与反向代理, 并实现SSL证书
git.xxx.com 访问gitlab
mantis.xxx.com 访问maints
安装Haproxy
yum install haproxy
配置Haproxy web管理页面
vim /etc/haproxy/haproxy.cfg
listen admin-stats
stats enable
bind *:8888
mode http
option httplog
log global
maxconn 10
stats refresh 30s
stats uri /admin
stats realm haproxy
stats auth admin:admin
stats hide-version
stats admin if TRUE
访问web管理页面
http://git.xxx.com/admin
账户:admin
密码:admin
Haproxy log配置
增加log配置
vi /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local2.* /data/log/haproxy/haproxy.log
&~
创建日志文件目录
mkdir -p /data/log/haproxy
配置logrotate
vim /etc/logrotate.d/haproxy
/data/log/haproxy/haproxy.log {
daily
compress
rotate 10
missingok
notifempty
dateext
sharedscripts
postrotate
service rsyslog restart
endscript
}
logrotate haproxy测试
logrotate -f haproxy
在/data/log/haproxy下会生成 haproxy.log-xxxxxxxx.gz
重启rsyslog 与haproxy
systemctl restart rsyslog
systemctl restart haproxy
Haproxy代理80端口
listen http_80_in
# http_80_in定义前端部分80监听的套接字
bind *:80
# 定义为HTTP模式
mode http
option httplog
#判断访问git.xxx.com 使用git-backend 处理
acl is_git hdr_beg(host) -i git.xxx.com
use_backend git-backend if is_git
#判断访问mantis.xxx.com mantis-backend 处理
acl is_mantis hdr_beg(host) -i mantis.xxx.com
use_backend mantis-backend if is_mantis
#默认使用git-backend处理 如通过IP直接访问时
default_backend git-backend
Haproxy代理443端口
frontend tcp_in_443
#绑定443商品,并指定证书的地址,证书来源为阿里云的Digital RSA免费证书
bind *:443 ssl crt /ssl_cert/mantis.xxx.com/merge.pem crt /ssl_cert/git.xxx.com/merge.pem
# 定义为HTTP模式
mode http
option httplog
#判断访问git.xxx.com 使用git-backend 处理
acl is_git hdr_beg(host) -i git.xxx.com
use_backend git-backend if is_git
#判断访问mantis.xxx.com mantis-backend 处理
acl is_mantis hdr_beg(host) -i mantis.xxx.com
use_backend mantis-backend if is_mantis
#默认使用git-backend处理 如通过IP直接访问时
default_backend git-backend
Haproxy代理22端口
listen tcp_git_in_22
bind *:22
mode tcp
server git_ssh 127.0.0.1:2222
sshd 端口修改
vi /etc/ssh/sshd_config
#Port 22
Port 15678
git-backend处理
backend git-backend
#haproxy 调度算法
balance leastconn
#server超时时间
timeout server 600s
timeout check 5000
#配置转发地址
server git_1 127.0.0.1:8443 check ssl verify none
mantis-backend 处理
backend mantis-backend
balance leastconn
timeout server 600s
timeout check 5000
server mantis_1 127.0.0.1:9980 check
|