centos7.9 源码安装haproxy详细教程 要求haproxy不能使用80端口
时间: 2025-05-25 16:05:28 浏览: 17
### 安装HAProxy并避免使用80端口
#### 1. 准备环境
将HAProxy的源码包上传至服务器的`/usr/local/src`目录。具体操作如下:
```bash
cd /usr/local/src
tar -zxvf haproxy-1.8.6.tar.gz
cd haproxy-1.8.6
```
确认Linux内核版本以匹配编译目标:
```bash
uname -r
```
对于CentOS 7.9,通常输出类似于`3.10.0-xxx.el7.x86_64`。因此,编译时应指定`TARGET=linux31`参数[^2]。
#### 2. 编译与安装
执行以下命令进行编译和安装:
```bash
make TARGET=linux31
make install PREFIX=/usr/local/haproxy
```
这将在`/usr/local/haproxy`路径下完成HAProxy的安装。
创建必要的日志目录:
```bash
mkdir /usr/local/haproxy/logs
cp examples/option-http_proxy.cfg /usr/local/haproxy/haproxy.cfg
```
#### 3. 修改配置文件以避开80端口
编辑HAProxy的主要配置文件 `/usr/local/haproxy/haproxy.cfg`,确保其中未定义任何监听80端口的内容。例如,可以修改前端部分为以下形式:
```plaintext
frontend my_frontend
bind *:8080 # 将原本绑定的80端口改为8080或其他可用端口
mode http # 设置模式为HTTP
default_backend servers_pool
backend servers_pool
balance roundrobin # 使用轮询算法分发请求
server server1 192.168.1.101:80 check
server server2 192.168.1.102:80 check
```
此配置中,前端绑定了8080端口而非80端口[^1]。
#### 4. 启动服务
为了使HAProxy作为服务运行,在`/etc/systemd/system/`目录下创建一个新的Systemd服务单元文件 `haproxy.service`,内容如下:
```ini
[Unit]
Description=HAProxy Load Balancer
After=network.target
[Service]
ExecStartPre=/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg -c -q
ExecStart=/usr/local/haproxy/sbin/haproxy -Ws -f /usr/local/haproxy/haproxy.cfg -p /var/run/haproxy.pid
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=root
[Install]
WantedBy=multi-user.target
```
重新加载Systemd配置并启动服务:
```bash
systemctl daemon-reload
systemctl start haproxy
systemctl enable haproxy
```
验证服务是否正常运行,并检查实际使用的端口:
```bash
ss -ntl | grep 8080
```
---
### 总结
通过上述步骤可以在CentOS 7.9上成功源码安装HAProxy,并确保其不使用80端口。核心在于调整配置文件中的`bind`指令,使其指向其他非受限端口(如8080)。此外,还需注意SELinux策略可能带来的限制,必要时可通过适当方式解决。
---
阅读全文
相关推荐














