怎么配置反向代理 apache

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么配置反向代理 apache相关的知识,希望对你有一定的参考价值。

双击安装刚下载的Apache HTTP Server安装文件,按照安装向导安装完成后,软件会自动运行,如果端口不被占用,会启动成功,例如,在浏览器输入http://localhost或者http://localhost:8080,回车。如果出现ItWorks!字样,说明已经安装成功了。

要配置反向代理,
首先,找到我们刚才安装的Apache HTTP Server根目录,

进入conf,找到httpd.conf配置文件,在大概110行,
LoadModuleproxy_module modules/mod_proxy.so
LoadModuleproxy_ajp_modulemodules/mod_proxy_ajp.so
LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so
LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so
LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so
LoadModuleproxy_http_modulemodules/mod_proxy_http.so

将这些注释打开,即去掉前面的#;

然后,还是在这个文件的471行,
Include conf/extra/httpd-vhosts.conf
将注释打开;

打开,修改里面的配置;

NameVirtualHost *:80[A1]

<VirtualHost *:80>[A2]
ServerAdmin webmaster@test.com
DocumentRoot "d:/www/test"
ServerName test.orientsec.com
ServerAlias test.orientsec.com
ErrorLog "logs/test-error.log"
CustomLog "logs/test-access.log"common

ProxyPass /images/ !
ProxyPass/js/ !
ProxyPass/css/ !
ProxyPass/wiki http://hdwiki.orientsec.com/wiki.html max=20 ttl=120 retry=300
ProxyPassReverse/wiki http://hdwiki.orientsec.com/wiki.html
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@hdwiki.com
DocumentRoot "d:/www/hdwiki"
ServerName hdwiki.orientsec.com
ServerAlias hdwiki.orientsec.com
ErrorLog "logs/hdwiki-error.log"
CustomLog "logs/hdwiki-access.log"common
</VirtualHost>

找到conf/httpd.conf里面的< Directory>标签修改权限配置,否则会一直拒绝访问,需要登录验证。
Allow from none
改为:
Allow from all

最后,重启Apache HTTP Server;
负载均衡
ProxyPass / balancer://orientsec.com.cn/
ProxyPassReverse/ balancer://orientsec.com.cn /
<Proxy balancer://orientsec.com.cn/>
BalancerMember http://localhost:8085/
BalancerMemberhttp://localhost:8086/
</Proxy>
参考技术A 如何开启apache虚拟目录反向代理

现有2个项目,A:php项目,B:java项目。由于域名解析只能使用80端口,因此需要apache来反向代理。apache使用80端口,tomcat使用8080.

apache下httpd.conf中开启以下模块:

# Virtual hosts 加载虚拟主机功能

Include conf/extra/httpd-vhosts.conf#开启代理相关模块

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

LoadModule proxy_http_module modules/mod_proxy_http.soLoadModule vhost_alias_module modules/mod_vhost_alias.so

httpd-vhosts中添加

<VirtualHost *:80>

ServerName yxj.zhoushangang.cn

ProxyPreserveHost On

ProxyRequests Off

ProxyPass / http://localhost:8080/

ProxyPassReverse / http://localhost:8080/

ErrorLog logs/wap.xxx.com_error_log

CustomLog logs/wap.xxx.com_access_log common

</VirtualHost>

Apache反向代理配置

一、问题描述:

在本地服务器A(11.36.164.161)上部署前端系统,采用xampp集成的apache;
后台位于服务器B(101.8.22.13:5978),A与B是通的,因此在A上能够直接请求数据,但是客户端C访问A的时候,默认是由C直接向B请求数据,如果C与B不通,则没法请求后台数据,解决的办法是在A上对B配置反向代理,即所有客户端对B的请求实际上都通过A进行转发。在xampp集成的apache服务器中配置,采用端口代理,由于前端端口与新配置的代理端口可能存在跨域,因此还要开启A的允许跨域。

二、配置方法

本地服务器A:11.36.164.161
远程服务器B:101.8.22.13:5978
以下配置均在A中完成

①开启apache代理,在httpd.conf中打开以下配置

\xampp\apache\conf\httpd.conf

LoadModule proxy_module  modules/mod_proxy.so
LoadModule proxy_connect_module  modules/mod_proxy_connect.so
LoadModule proxy_ftp_module  modules/mod_proxy_ftp.so
LoadModule proxy_http_module  modules/mod_proxy_http.so

Include conf/extra/httpd-vhosts.conf

②修改httpd.conf中Directory配置为以下内容使服务器允许跨域

<Directory />
     AllowOverride none
     Require all granted
     Header set Access-Control-Allow-Origin *
</Directory>

③在httpd-vhosts.conf中添加端口代理

\xampp\apache\conf\extra\httpd-vhosts.conf

listen 88
<VirtualHost 11.36.164.161:88>
       ServerName dummy-host.11.36.164.161
       ProxyRequests  off
       <Proxy *>
              Order  allow,deny
              Allow  from all
       </Proxy>
       ProxyPass / http://101.8.22.13:5978/
       ProxyPassReverse / http://101.8.22.13:5978/
</VirtualHost>

含义:将原来请求B服务器http://101.8.22.13:5978/的URL通过服务器A的88端口进行转发,注意斜杠,例如服务器A之前请求B的URL为http://101.8.22.13:5978/stat,则设置反向代理后请求改为http://11.36.164.161:88/stat

④修改原来前端直接请求http://101.8.22.13:5978/的URL为本机88端口的URL

globe.restDataURL ="http://11.36.164.161:88";//后台数据实际url为:http://101.8.22.13:5978/,已采用反向代理配置


以上是关于怎么配置反向代理 apache的主要内容,如果未能解决你的问题,请参考以下文章

怎么配置反向代理 apache

nginx怎么反向代理asp页面

nginx反向代理node.js获取客户端IP

将 nginx 配置为 node.js 的反向代理有啥问题?

问题解决1:nginx反向代理丢失js、css问题

nginx反向代理配置不生效