entos7.9 源码安装haproxy2.8.0版本详细教程 要求haproxy不能使用80端
时间: 2025-06-02 19:17:05 浏览: 17
### 在CentOS 7.9上源码安装HAProxy 2.8.0并避免使用80端口
#### 1. 环境准备
确保已更新系统软件包:
```bash
yum update -y
```
安装依赖项以便于编译HAProxy:
```bash
yum groupinstall "Development Tools" -y
yum install pcre-devel openssl-devel gcc make -y
```
下载HAProxy 2.8.0的源码包到`/usr/local/src`目录下:
```bash
cd /usr/local/src
wget https://www.haproxy.org/download/2.8/src/haproxy-2.8.0.tar.gz
tar -zxvf haproxy-2.8.0.tar.gz
cd haproxy-2.8.0
```
#### 2. 配置与编译
针对CentOS 7.9系统的内核版本,设置合适的编译选项。执行以下命令进行配置和编译:
```bash
make TARGET=linux-glibc USE_OPENSSL=1 USE_PCRE=1
make install PREFIX=/usr/local/haproxy
```
这一步会将HAProxy安装至`/usr/local/haproxy`路径下。
#### 3. 创建日志目录与初始化配置文件
创建用于存储日志的目录以及复制默认配置模板:
```bash
mkdir -p /usr/local/haproxy/logs
cp doc/examplecfg/default.cfg /usr/local/haproxy/haproxy.cfg
```
#### 4. 修改配置以避开80端口
编辑主要配置文件 `/usr/local/haproxy/haproxy.cfg` 并调整前端绑定端口号为非80端口(例如8080),以下是示例配置片段:
```plaintext
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend main
bind *:8080 # 更改此处端口为8080或其他可用端口
acl url_static path_beg -i /static /images /javascript /stylesheets
use_backend static if url_static
default_backend app_servers
backend app_servers
balance roundrobin
server web1 192.168.1.101:80 check
server web2 192.168.1.102:80 check
```
以上配置中明确了前端监听的是8080端口而不是常见的80端口[^1]。
#### 5. 设置Systemd服务管理
为了让HAProxy能够被更方便地管理和控制,可以通过创建一个Systemd服务单元来实现自动化启动等功能。新建文件`/etc/systemd/system/haproxy.service`,内容如下所示:
```ini
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network-online.target
Wants=network-online.target
[Service]
Environment="CONFIG=/usr/local/haproxy/haproxy.cfg"
EnvironmentFile=-/etc/sysconfig/haproxy
ExecStartPre=/usr/local/haproxy/sbin/haproxy -f ${CONFIG} -c -q
ExecStart=/usr/local/haproxy/sbin/haproxy -Ws -f ${CONFIG} -p /var/run/haproxy.pid
ExecReload=/usr/bin/kill -USR2 $MAINPID
KillSignal=SIGINT
Restart=on-abnormal
User=root
[Install]
WantedBy=multi-user.target
```
随后刷新daemon缓存并尝试启动新服务:
```bash
systemctl daemon-reload
systemctl start haproxy
systemctl enable haproxy
```
最后验证服务状态及所用端口是否正确无误:
```bash
systemctl status haproxy
ss -tuln | grep 8080
```
---
### 总结说明
按照上述流程即可顺利完成基于CentOS 7.9平台上的HAProxy 2.8.0版本源码安装工作,并且通过更改配置实现了不占用80端口的目标。重点在于修改配置文件中的`bind`字段值,从而指派给其他合法开放端口替代传统HTTP标准端口80的功能需求[^2]。
---
阅读全文
相关推荐

















