在 CentOS 上,Apache 通常叫 httpd(不是 apache2,apache2 是 Debian/Ubuntu 的叫法)。下面我分别说 CentOS 下 Apache 做代理(正向 / 反向) 的常见做法。
# CentOS 7/8
systemctl status httpd
安装:
yum install httpd -y # CentOS 7
dnf install httpd -y # CentOS 8
Apache 代理依赖以下模块:
mod_proxymod_proxy_httpmod_proxy_wstunnel、mod_ssl查看是否已加载:
httpd -M | grep proxy
如未加载,编辑:
vi /etc/httpd/conf.modules.d/00-proxy.conf
确保有:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
重启:
systemctl restart httpd
场景:把请求转发到后端(如 8080 端口)
<VirtualHost *:80>
ServerName example.com
ProxyRequests Off
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
ProxyPass /api/ http://127.0.0.1:9000/
ProxyPassReverse /api/ http://127.0.0.1:9000/
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
ProxyRequests On
ProxyVia On
<Proxy *>
Require ip 192.168.1.0/24
</Proxy>
⚠️ 正向代理极易被滥用,务必加访问控制。
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
建议新建:
/etc/httpd/conf.d/proxy.conf
# 查看错误
tail -f /var/log/httpd/error_log
# 检查配置
httpd -t
如果你能说清楚:
我可以直接给你一份 可直接用的配置。