前言
由于青岛大学的OJ项目需要占用80端口,并且此服务使用的是docker来进行开展的,因此现阶段并不能找到相关的方式去更换代码,因此采用apache2的自带反代理模式,来实现对域名的映射
参考
过程
什么是反向代理?
反向代理是充当Web服务器网关的代理服务器。当您将请求发送到使用反向代理的Web服务器时,他们将先转到反向代理,由该代理将确定是将其路由到Web服务器还是将其阻止。
这意味着有了反向代理,您永远不会与使用它的Web服务器进行直接通信。可以将它们看作web服务器或服务器集群的某种包装器。通过负载平衡和缓存,它们可以保护web免遭攻击,并提供更好的web性能。
加载相关模块
首先我们需要运行apache的模块加载,输入如下命令(可能是ubuntu专属命令):
a2enmod proxy proxy_balancer proxy_http
之后我们需要在apahce的配置服务中设置相关配置
- 进入到apache 的配置目录下:
如我的是etc/apache2/sites-available
- 使用你所要配置的域名进行创建一个
域名.conf
文件 - 使用vim或者等相关编辑工具对此conf文件进行编辑
输入如下内容:
1 | <VirtualHost *:80> |
注意:lizi.com是你的域名地址,将其替换输入进去即可
- 在
sites-enabled
的文件夹下(一般是在etc/apache2
目录下)链接一下你刚刚创建的conf文件
ln -s /etc/apahce2/sites-available/域名.conf ../sites-enabled
- 之后重启apache服务便可以
systemctl restart apache2
或者service apache2 restart
然后访问你的域名,你就会发现已经正常代理到了你所需要的网站上
相关用途
- 该公司可以隐藏其实际内部服务器结构的详细信息,从而使访问或破坏这些服务器变得更加困难。本质上是黑客保护。
- **反向代理可以使用防火墙设置来帮助防御DDoS攻击**。该代理可以减轻DDoS的压力并通过合法的流量,而不会损害真实Web服务器的性能。当然,就像一扇人群挤过的门一样,它仍然可能是一个瓶颈,但并不是那种在失败时危及用户数据的瓶颈。
- 反向代理可能配备有可加快SSL证书验证速度的硬件,从而使SSL连接更快且更不容易被利用。
- 如果有几台内部Web服务器上有冗余数据,则反向代理可以充当负载平衡器,确保每台内部服务器的压力都不大。当每台服务器的功能极小但它们共同构成强大的资源来源时,此功能特别有用。
- 通过在请求相同时立即向多个客户端提供动态数据,可以将反向代理用作动态内容的缓存。此过程称为网络加速。
- 反向代理可以处理 Web服务器的数据压缩,以提供更快的连接和较低的主Web服务器压力。
- 当访问地址必须保持不变时,反向代理用于统一网址。如果您有五个Web服务器,则通常每个服务器都有自己的IP地址。这将使静态脚本难以访问,因为它将被迫访问指