”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Apache 虚拟主机:添加反向代理

Apache 虚拟主机:添加反向代理

发布于2024-11-08
浏览:926

Apache Virtual Host: Adding reverse proxy

什么是反向代理?

反向代理充当将客户端请求转发到其他服务器的中介。它通常用于负载平衡、安全、缓存或将 HTTP 请求转发到后端服务器(例如,在 Node.js、Python、PHP 或其他服务器上运行的应用程序)。

Apache 允许您使用其 mod_proxy 和 mod_proxy_http 模块进行配置。这是有关如何执行此操作的指南。

设想

我们将配置 Apache 作为后端服务的反向代理,例如在端口 8080 上的本地主机上运行的服务器。

配置反向代理的步骤:

1.启用必要的模块

首先,您需要启用Apache中的代理模块:

sudo a2enmod proxy sudo a2enmod proxy_http

重启Apache以使模块生效:

sudo systemctl restart apache2 

2.使用反向代理配置虚拟主机

现在编辑我们之前创建的虚拟主机的配置文件以添加代理指令。

打开配置文件:

sudo your_editor /etc/apache2/sites-available/php.conf

块内添加代理配置行:


    ServerAdmin webmaster@localhost
    ServerName php.info
    DocumentRoot /var/www/html/php

    # Reverse Proxy Directives
    ProxyPreserveHost On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    
        AllowOverride All
        Require all granted
    

    # Logs for debugging
    ErrorLog ${APACHE_LOG_DIR}/php_error.log
    CustomLog ${APACHE_LOG_DIR}/php_access.log combined

这些指令执行以下操作:

  • ProxyPreserveHost On:当 Apache 向后端服务器发出请求时,保留客户端的原始 Host 标头。
  • ProxyPass / http://localhost:8080/:将进入 Apache 的所有请求重定向到侦听端口 8080 的服务器。
  • ProxyPassReverse / http://localhost:8080/:将请求映射回 Apache,这意味着来自后端的响应被修改为看起来直接来自 Apache。

3.重启Apache

更改后,再次重新启动Apache:

sudo systemctl restart apache2

4.测试反向代理

现在,当您访问http://php.info时,Apache会将请求转发到监听http://localhost:8080的后端。

版本声明 本文转载于:https://dev.to/xxzeroxx/apache-virtual-host-adding-reverse-proxy-k7?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3