ZHYCarge的博客

旧平台,已不再维护,请点击下方链接转至新平台访问

0%

apache设置反向代理

前言

由于青岛大学的OJ项目需要占用80端口,并且此服务使用的是docker来进行开展的,因此现阶段并不能找到相关的方式去更换代码,因此采用apache2的自带反代理模式,来实现对域名的映射

参考

Ubuntu Apache2 反代

Ubuntu Apache反代(反向代理)设置

什么是反向代理?

过程

什么是反向代理?

反向代理是充当Web服务器网关的代理服务器。当您将请求发送到使用反向代理的Web服务器时,他们将先转到反向代理,由该代理将确定是将其路由到Web服务器还是将其阻止。

这意味着有了反向代理,您永远不会与使用它的Web服务器进行直接通信。可以将它们看作web服务器或服务器集群的某种包装器。通过负载平衡和缓存,它们可以保护web免遭攻击,并提供更好的web性能。

加载相关模块

首先我们需要运行apache的模块加载,输入如下命令(可能是ubuntu专属命令):

a2enmod proxy proxy_balancer proxy_http

之后我们需要在apahce的配置服务中设置相关配置

  1. 进入到apache 的配置目录下:

如我的是etc/apache2/sites-available

  1. 使用你所要配置的域名进行创建一个域名.conf文件
  2. 使用vim或者等相关编辑工具对此conf文件进行编辑

输入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<VirtualHost *:80>
ServerName lizi.com:80
ProxyRequests Off
ProxyMaxForwards 100
ProxyPreserveHost On
#反代理要解析的ip 支持添加端口
ProxyPass / http://127.0.0.1:90/
ProxyPassReverse / http://127.0.0.1:90/

<Proxy *>
Order Deny,Allow
Allow from all
</Proxy>
</VirtualHost>

注意:lizi.com是你的域名地址,将其替换输入进去即可

  1. sites-enabled的文件夹下(一般是在etc/apache2目录下)链接一下你刚刚创建的conf文件

ln -s /etc/apahce2/sites-available/域名.conf ../sites-enabled

  1. 之后重启apache服务便可以

systemctl restart apache2或者service apache2 restart

然后访问你的域名,你就会发现已经正常代理到了你所需要的网站上

相关用途

  • 该公司可以隐藏其实际内部服务器结构的详细信息,从而使访问或破坏这些服务器变得更加困难。本质上是黑客保护。
  • **反向代理可以使用防火墙设置来帮助防御DDoS攻击**。该代理可以减轻DDoS的压力并通过合法的流量,而不会损害真实Web服务器的性能。当然,就像一扇人群挤过的门一样,它仍然可能是一个瓶颈,但并不是那种在失败时危及用户数据的瓶颈。
  • 反向代理可能配备有可加快SSL证书验证速度的硬件,从而使SSL连接更快且更不容易被利用。
  • 如果有几台内部Web服务器上有冗余数据,则反向代理可以充当负载平衡器,确保每台内部服务器的压力都不大。当每台服务器的功能极小但它们共同构成强大的资源来源时,此功能特别有用。
  • 通过在请求相同时立即向多个客户端提供动态数据,可以将反向代理用作动态内容的缓存。此过程称为网络加速。
  • 反向代理可以处理 Web服务器的数据压缩,以提供更快的连接和较低的主Web服务器压力。
  • 当访问地址必须保持不变时,反向代理用于统一网址。如果您有五个Web服务器,则通常每个服务器都有自己的IP地址。这将使静态脚本难以访问,因为它将被迫访问指
-------------我也是有底线的哦如需更多,欢迎打赏-------------