apache反向代理

 

正向代理是客户端发送请求给代理服务器,代理服务器将请求发给实际处理的服务器

反向代理是客户端发送请求给服务器(实际上是个代理服务器),服务器将请求发给实际处理的服务器

情景

在一台服务器上开了apache(侦听80端口),又开了tomcat(侦听8080端口)

顶级域名解析到了apache这个服务器,想用二级域名访问到tomcat服务器下面的某个项目

解决方案

一、泛解析域名

先在云解析上配置二级域名的解析

这样子配置了,所有二级域名都会解析到了

二、APACHE配置

apache配置分为2步

第一步在/conf/extra/httpd-vhosts.conf中配置反向代理

第二步在/conf/httpd.conf中开启代理模块和导入httpd-vhosts.conf

1.配置反向代理


#反向代理到tomcat的虚拟主机
#需要代理的域名
ServerName www.abc.wewill.top
#代理域名的别名
#ServerName和ServerAlias都会被代理
ServerAlias abc.wewill.top
#反向代理不需要开启ProxyRequests
ProxyRequests Off
Order deny,allow
#接受来自任何地方的请求
Allow from all
#将www.abc.wewill.top/*转发请求给http://localhost:8080/abc/*
ProxyPass / http://localhost:8080/abc/*

2.开启代理和导入配置

在/conf/httpd.conf中配置

#找到下面的配置,把前面的注释#去掉
#在apache开启时加载代理模块
LoadModule proxy_module modules/mod_proxy.so
#在apache开启时加载代理http模块
LoadModule proxy_http_module modules/mod_proxy_http.so
#导入conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-vhosts.conf

实验

访问cmbc.wewill.top

 test1

这个html是在tomcat中cmbc项目的,从apache代理到tomcat成功了

test2

响应头中,服务器写着:apache,却不是tomcat

因为apache作为代理服务器,接受请求和发送相应都是apache的工作

原文地址:https://www.cnblogs.com/wewill/p/5588723.html