如何使用Apache做反向代理

如何使用Apache做反向代理

本文撰写时间:2018-07-21 09:11,修改时间:2022-07-12

一、反向代理

  • 正向代理:服务器A 替代客户端去请求另外一台服务器B,将数据返回客户端,这个过程叫正向代理,正向代理隐藏了真实的客户端
  • 反向代理:服务器A 将客户端的请求转发给了服务器B去处理,客户端不知道服务器B的存在,这个过程叫反向代理,反向代理隐藏了真实的服务器

反向代理简单理解如下图示:

timg.jpeg

在同一台服务器内,假设服务器对外网只开放了80端口,当客户端请求80端口的http服务,转发给其他端口服务来处理,这个过程也是反向代理。这篇博客给大家演示Apache反向代理设置,使的得一台服务器上同时支持运行多端口服务(如同时运行PHP和Java项目)。

二、工具

    1. Apache 2.4.33
    1. JDK 1.8 + Tomcat 8.5

三、步骤

3.1、开启mod_proxy.so和mod_proxy_http.so模块

在Apache的httpd.conf配置文件中,添加以下两行配置

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

3.2、设置转发

进入Apache安装目录下的/conf/extra目录,如果你使用的http默认端口,更改httpd-vhosts.conf文件,

<VirtualHost _default_:80>
    ServerName test.cn #域名
    
    ProxyPreserveHost On # 开启反向代理
    ProxyRequests Off # 关闭正向代理
    
    ProxyPass / http://127.0.0.1:8080/ #映射地址
    ProxyPassReverse / http://127.0.0.1:8080/ #映射302重定向的地址
</VirtualHost>

假如使用的是https加密端口的话,更改httpd-ssl.conf文件,如下

<VirtualHost _default_:443>
    ServerName test.cn #域名
    SSLEngine on
    SSLCertificateFile "证书所在目录/fullchain.pem"
    SSLCertificateKeyFile "证书所在目录/privkey.pem"
    
    ProxyPreserveHost On
    ProxyRequests Off
    
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost> 

保存配置重启Apache,在浏览器输入直接输入域名就可以访问到8080端口的项目了

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

评论已关闭

生活其实很简单,过了今天就是明天。

低头哭过别忘了抬头继续走。

不要被任何人打乱自的脚步,因为没有谁会像你一样清楚和在乎自己梦想。

没有人可以打倒我,除非我自己先趴下!

你要记住你不是为别人而活,你是为自己而活。