温馨提示×

ubuntu apache怎么配置反向代理

小樊
43
2026-09-17 09:23:43
栏目: 智能运维

在 Ubuntu 上用 Apache 配置反向代理,一般步骤如下(以 Ubuntu 20.04 / 22.04 为例,Apache 2.4)。


一、安装 Apache(如未安装)

sudo apt update
sudo apt install apache2

二、启用必要模块

反向代理需要以下模块:

sudo a2enmod proxy
sudo a2enmod proxy_http
# 如果是 WebSocket(如 Node.js)
sudo a2enmod proxy_wstunnel

启用后重启 Apache:

sudo systemctl restart apache2

三、配置反向代理(推荐方式:虚拟主机)

示例:将 http://example.com 反向代理到 http://127.0.0.1:3000

编辑或新建配置文件:

sudo nano /etc/apache2/sites-available/example.conf

内容示例:

<VirtualHost *:80>
    ServerName example.com

    ProxyRequests Off
    ProxyPreserveHost On

    ProxyPass / http://127.0.0.1:3000/
    ProxyPassReverse / http://127.0.0.1:3000/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

四、启用站点并重载 Apache

sudo a2ensite example.conf
sudo systemctl reload apache2

五、HTTPS(可选,推荐)

1. 安装 Certbot

sudo apt install certbot python3-certbot-apache

2. 申请证书

sudo certbot --apache -d example.com

Certbot 会自动帮你配置 ProxyPass 到 HTTPS。


六、常见问题

1. 页面能打开但资源 404

检查:

ProxyPassReverse / http://127.0.0.1:3000/

2. 需要 WebSocket(如 Vue / React / Node)

ProxyPass /ws/ ws://127.0.0.1:3000/
ProxyPassReverse /ws/ ws://127.0.0.1:3000/

3. 代理到 Docker 容器

ProxyPass / http://localhost:8080/

七、最小可用示例(localhost)

<VirtualHost *:80>
    ProxyPass / http://127.0.0.1:5000/
    ProxyPassReverse / http://127.0.0.1:5000/
</VirtualHost>

如果你有 具体场景(如 Docker / Spring Boot / Node / 内网服务 / HTTPS),我可以给你更精确的配置。

0