返回顶部
首页 > 资讯 > 服务器 >使用 Apache 反向代理的设置技巧
  • 763
分享到

使用 Apache 反向代理的设置技巧

2024-04-02 19:04:59 763人浏览 独家记忆
摘要

Apache 是一个多功能的 WEB 服务器,它提供了完整的支持功能,其中一些是通过扩展来实现的。在本文中,我们将使用该mod_proxy模块将 Apache 配置为反向代理角色。

Apache 是一个多功能的 WEB 服务器,它提供了完整的支持功能,其中一些是通过扩展来实现的。在本文中,我们将使用该mod_proxy模块将 Apache 配置为反向代理角色。

虽然 Apache 可能不是您作为反向代理的首选,但 Nginx 等更现代的替代方案往往会引起注意,mod_proxy但对于已经在运行 Apache 并且现在需要将流量路由到另一个服务的服务器很有用。您可以设置 Apache 虚拟主机将给定域的请求传递到单独的 Web 服务器。

出于本指南的目的,我们将 Apache 2.4 与基于 Debian 的系统一起使用。我们还将假设您想要代理流量的服务器已经可以从您的 Apache 主机通过网络访问。本文重点介绍基于唯一虚拟主机启用代理,但mod_proxy也可全局配置,作为 Apache 服务器配置的一部分,或通过.htaccess文件在目录级别进行配置。

启用代理模块

mod_proxy包含在默认的 Apache 安装中。现在a2enmod用于激活模块及其独立的 Http 组件:

sudo a2enmod proxy
sudo a2enmod proxy_http

这将 Apache 设置为支持代理到其他主机的 HTTP 连接。该模块使用ProxyApache 配置文件中的 -prefixed 指令进行配置。我们接下来会设置这些。

设置代理虚拟主机

让我们设置一个转发example.com到内部 IP 地址的虚拟主机192.168.0.1。您应该example.com将该点的 DNS 记录添加到您的 Apache 主机。

在这种情况下,代理允许访问者通过外部地址透明地访问您的内部 Web 服务器。Apache 充当将流量路由到其最终目的地的看门人。用户将看到example.com,即使 Apache 实际上是通过单独的服务器解析请求。

在里面添加一个新的虚拟主机文件/etc/apache2/sites-available,内容如下:

<VirtualHost *:80>
    ServerName example.com

    ProxyPass / http://192.168.0.1/ nocanon
    ProxyPassReverse / http://192.168.0.1/
</VirtualHost>

在ProxyPass与ProxyPassReverse指令指定的流量example.com应该被代理到192.168.0.1。可选nocanon关键字指示 Apache 将原始 URL 传递给远程服务器。如果没有这个关键字,Apache 会自动规范化 URL,这可能与某些服务器和框架不兼容。使用nocanon保证兼容性但会影响您的安全状况,因为它会禁用 Apache 针对基于 URL 的代理攻击的内置保护。

ProxyPassReverse必须提供以将您的配置区分为反向代理设置。Apache将使用所提供的URL重写Location,Content-Location和URI由后端发出的响应头。这确保了后续请求继续命中反向代理,而不是尝试直接到达内部服务器。

此配置将代理所有请求。您可以将代理限制到特定路径,例如/media通过调整ProxyPass和ProxyPassReverse指令:

ProxyPass /media http://192.168.0.1/
ProxyPassReverse /media http://192.168.0.1/

添加多个ProxyPass规则可让您使用一个虚拟主机在多个目标之间路由请求。规则按照它们编写的顺序进行匹配。如果您需要更复杂的路由行为,请改用该ProxyPaSSMatch指令。这等效于ProxyPass但将传入的 URL 与正则表达式匹配:

ProxyPassMatch ^/client/(.*)/images$ http://192.168.0.1/

保存您的虚拟主机文件并使用a2ensite命令启用它。这采用相对于sites-available目录的文件的基本名称:

sudo a2ensite example-proxy-vhost

重新启动 Apache 以应用您的更改:

sudo service apache2 restart

您的简单代理现在应该可以运行了。尝试访问example.com- 您应该会看到192.168.0.1. 该请求在您的 Apache 主机处终止,然后将其代理到您的内部服务器。

使用 SSL

上面的示例省略了 SSL。在生产工作负载中,您希望通过向 虚拟主机添加SSLCertificateFile和SSLCertificateKeyFile设置来进行设置。这些指定验证 SSL 连接时要使用的 SSL 证书和密钥。您还可以使用 Let’s Encrypt 的certbot 来自动设置。

以这种方式配置 SSL 意味着安全连接将在您的 Apache 主机上终止。Apache 和您的代理目标之间的连接将通过纯 HTTP 进行。

如果您需要代理连接固定也一样,你必须使用SSLProxy选项提供mod_ssl。SSLProxyEngine = On将作为最基本的配置工作,前提是 Apache 和您的代理目标服务器都可以访问相同的证书。此选项指示通过代理连接提供 SSL 信息。

代理选项

Apache 反向代理有几个可用于调整转发行为的可选指令。以下是一些常用的选项:

  • ProxyAddHeaders–默认情况下,Apache将X-Forwarded-Host、XForwarded-For和X-Forwarded-Serverheaders传递给您的后端服务器。这些让您的后端识别请求是通过 Apache 代理的。设置此标头以Off防止 Apache 添加这些标头。
  • ProxyErrorOverride– Apache 不会干扰后端服务器发送的响应,除非有指示。如果您的后端提供 400、404、500 或任何其他错误代码,用户将按原样接收该内容。设置ProxyErrorOverride改变了这一点,让阿帕奇替换错误页面的内容配置ErrorDocument来代替。在您希望通过集中在代理主机上的配置统一处理所有后端的错误的情况下,这可能是可取的。
  • ProxyPassReverseCookieDomain–此功能类似于强制(用于反向代理)ProxyPassReverse指令。它将重写Set-Cookie标头中的域以引用虚拟主机的名称,而不是它们源自的后端服务器的主机名。
  • ProxyPreserveHost– Apache通常将其自己的主机名作为Host标头的值发送到您的后端服务器。设置此指令意味着将发送原始 Host标头。当您的后端软件执行其自己的基于主机名的路由时,这可能是必要的。
  • ProxyTimeout– 使用此指令来调整 Apache 在后端服务器处理代理请求时等待的时间。如果超时,Apache将中止请求并向客户端返回错误代码。它默认为服务器级别的Timeout值。

您可以将这些指令设置为虚拟主机文件中的附加行。记住每次应用更改时都要重新启动 Apache 服务。

负载均衡

Apache 的反向代理实现还支持多个不同后端之间的负载平衡。这允许请求访问example.com平衡池中的任何服务器。

<Proxy balancer://example-balancer>
    BalancerMember http://192.168.0.1
    BalancerMember http://192.168.0.2
    ProxySet lbmethod=bytraffic
</Proxy>

ProxyPass / balancer://example-balancer
ProxyPassReverse / balancer://example-balancer

此示例将请求路由到example-balancer池中的两台服务器之一。的负载平衡算法是由定义的lbmethod设置; bytraffic此处使用的值试图确保每个服务器处理相同数量的流量。

另一种方法 byrequests balancing method是更简单的 bytraffic 版本,它为每个后端提供相等的传入请求份额。该 bybusyness balancer轨道有多少要求每个后端是服务,然后分配新的到最“忙碌”的后端。

概括

该mod_proxy模块可以将 Apache 变成一个反向代理主机,允许您使用基于名称的路由来访问多个独立的服务。您也可以添加负载平衡,通过在您的服务器队列中分配请求来确保稳定性和正常运行时间。

其他代理口味也可用。您可以代理 FTP、websocket 和 HTTP2 连接等,方法是在mod_proxy. 完整的模块列表可在 Apache 文档中找到。

到此这篇关于如何使用 Apache 设置反向代理的文章就介绍到这了,更多相关Apache 反向代理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用 Apache 反向代理的设置技巧

本文链接: https://lsjlt.com/news/162276.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用 Apache 反向代理的设置技巧
    Apache 是一个多功能的 Web 服务器,它提供了完整的支持功能,其中一些是通过扩展来实现的。在本文中,我们将使用该mod_proxy模块将 Apache 配置为反向代理角色。...
    99+
    2024-04-02
  • Apache中怎么设置反向代理
    本篇文章为大家展示了Apache中怎么设置反向代理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  1、简述  反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连...
    99+
    2023-06-05
  • 反向代理设置
    折腾家庭服务器,因只有一个公网ip,还要尝试设置私有云,博客,论坛,以及练习flask编程,又不想写各种端口访问,计划采取的方案是设置一个反向代理,使用子域名访问各个服务。 一、什么是反向代理 1.1 正向代理与反向代理 代理是客户...
    99+
    2023-09-09
    服务器 运维 Powered by 金山文档
  • apache反向代理负载均衡怎么配置
    要配置Apache反向代理负载均衡,您可以按照以下步骤进行操作:1. 确保您已经安装了Apache HTTP Server软件。2....
    99+
    2023-09-02
    apache 负载均衡
  • 怎么进行nginx反向代理设置
    这期内容当中小编将会给大家带来有关怎么进行nginx反向代理设置,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。nginx是高性能的HTTP和反向代理服务器,jspxcms的演示站也是由nginx搭建,这里...
    99+
    2023-06-26
  • Apache的反向代理有以下几种方式
    Apache的反向代理的几种方式: mod_proxy:这是Apache的一个标准模块,它提供了反向代理的功能。您可以使用ProxyPass和ProxyPassReverse指令来配置反向代理。 mod_jk:这是一个连接Apache和...
    99+
    2023-09-02
    apache 服务器 tomcat 代理模式
  • 使用Nginx反向代理OpenAI API
    由于OpenAI的API在国内无法访问,所以可以通过海外服务器利用Nginx实现反向代理。 安装Nginx 这一步就不赘述了,不同的Linux系统安装方式略有不同,根据自己的服务器的系统自行百度即可。 OpenSSL创建证书 因为OpenA...
    99+
    2023-08-18
    nginx 服务器 ssl ai
  • 利用nginx/apache代理wss 实现 小程序 端口 反向代理
    除了用Workerman自身的SSL,也可以利用nginx/apache作为wss代理转发给workerman 我就是栽在这大坑里(nginx/apache代理wss,workerman部分就不要设置ssl,否则将无法连接,两个方法2选1)...
    99+
    2023-09-22
    nginx apache 运维
  • Vue项目怎么设置反向代理和cookie
    这篇文章主要介绍“Vue项目怎么设置反向代理和cookie”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue项目怎么设置反向代理和cookie”文章能帮助大家解决问题。Vue设置反向代理和cook...
    99+
    2023-06-29
  • 阿里云反向代理内网设置方法
    在苹果设备上设置阿里云反向代理内网需要一些步骤和配置。本文将详细介绍这些步骤,帮助您顺利完成设置。 一、准备工作阿里云账号:您需要拥有一个阿里云账号,并已登录该账号。阿里云反向代理服务器:您需要在阿里云上创建一个反向代理服务器,并获取其公网...
    99+
    2023-11-01
    阿里 内网 方法
  • vue的反向代理怎么配置
    本篇内容主要讲解“vue的反向代理怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue的反向代理怎么配置”吧!在vue中,因为反向代理可以隐藏真实的服务端,绕过直接请求真正的url而导致...
    99+
    2023-06-30
  • Vue项目如何设置反向代理和cookie设置问题
    目录Vue设置反向代理和cookie设置项目场景问题描述原因分析解决方案Vue项目使用js-cookie细则什么是js-cookie在项目中进行安装在项目中的入口文件(main.js...
    99+
    2024-04-02
  • nginx反向代理及使用详解
    1. nginx配置文件的组成 nginx 由以下几部分组成 2. nginx 反向代理的使用 proxy_pass指令可以根据规则代理到proxy_pass后的url地址 se...
    99+
    2024-04-02
  • 亚马逊服务器反向代理怎么设置的
    检查您的网站是否支持反向代理。您可以通过在浏览器中查看代理设置,以确保您的网站支持反向代理。 配置反向代理:在您的浏览器中输入“http://”,然后输入您的域名,例如“https://example.com”。这将使代理服务器自动连接到...
    99+
    2023-10-27
    亚马逊 服务器
  • 阿里云服务器反向代理怎么设置
    首先,我们需要选择合适的阿里云服务器反向代理软件,这里推荐使用VMware ESXi Server Reverse Director。它是一款高效的反向代理软件,具有强大的反向代理功能和多种安全特性,可支持多种操作系统和硬件平台,包括Win...
    99+
    2023-10-27
    阿里 服务器
  • 阿里云服务器怎么反向代理设置
    在阿里云服务器反向代理中,我们可以通过配置proxy和session变量来控制代理对象的访问权限。我们可以在proxy配置文件中设置代理访问的权限,例如将访问限制在某个特定的IP地址或端口范围内。 在session变量中,我们可以设置代理...
    99+
    2023-10-28
    阿里 服务器
  • 如何为本地 Docker Django 设置 Nginx 反向代理
    问题内容 我正在使用 nginx 和 django 服务开发一个 docker 项目。我已将 django.conf.template 参数化以根据环境动态传递环境变量。 django...
    99+
    2024-02-08
  • CentOS 7中怎么使用cPanel配置Nginx反向代理
    本文小编为大家详细介绍“CentOS 7中怎么使用cPanel配置Nginx反向代理”,内容详细,步骤清晰,细节处理妥当,希望这篇“CentOS 7中怎么使用cPanel配置Nginx反向代理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-06-27
  • 怎么使用Nginx作反向代理配置GZip压缩
    这篇文章主要介绍了怎么使用Nginx作反向代理配置GZip压缩的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Nginx作反向代理配置GZip压缩文章都会有所收获,下面我们一起来看看吧。前提条件: nod...
    99+
    2023-07-04
  • 阿里云反向代理用的
    一、反向代理的应用 反向代理是一种在互联网上运行的代理服务器,可以用于构建自己的网站、应用程序和数据库。在构建自己的网站时,反向代理可以为用户提供快速的反向编程接口,使用户能够自定义网站的结构和内容,以满足自己的需求。在构建自己的应用程序...
    99+
    2023-10-28
    阿里
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作