Apache 反向代理设置

1,放开虚拟主机(反向代理)模块,在httpd.conf中把下三行配置放开:

1 LoadModule proxy_module modules/mod_proxy.so
2 LoadModule proxy_http_module modules/mod_proxy_http.so
3 Include conf/extra/httpd-vhosts.conf

 

2,在conf/extra/httpd-vhosts.conf中配置虚拟主机(反向代理):

     http://localhost:8080/  是目标站点

     test.com 是公开访问的域名,配置为空站点

 

     apache2.4 的配置

  <VirtualHost test.com:80>
      DocumentRoot "/var/www/html/test.com/htdocs"
      ServerName test.com
      ErrorLog "logs/test.com-error_log"
      CustomLog "logs/test.com-access_log" common
      ProxyPreserveHost On
      ProxyPass / http://localhost:8080/ stickysession=ASP.NET_SessionId
      ProxyPassReverse / http://localhost:8080/
 </VirtualHost>

apache2.2的配置

<VirtualHost *:80>
     DocumentRoot "/var/www/html/test.com/htdocs"
    ServerName test.com
    ErrorLog "logs/test.com-error_log"
   CustomLog "logs/test.com-access_log" common
  <Location />
    ProxyPass http://localhost:8080/ stickysession=ASP.NET_SessionId
    ProxyPassReverse http://localhost:8080/
  </Location>
</VirtualHost>

stickysession=ASP.NET_SessionId  设置session保持

二、参数研究
 

1、ProxyPass:

语法:ProxyPass [path] !|url
它主要是用作URL前缀匹配,不能有正则表达式,它里面配置的Path实际上是一个虚拟的路径,在反向代理到后端的url后,path是不会带过去的,使用示例:

1)、ProxyPass /images/ !

这个示例表示,/images/的请求不被转发。

2)、ProxyPass /mirror/foo/ http://backend.example.com/

我们假设当前的服务地址是http://example.com/,如果我们做下面这样的请求:
http://example.com/mirror/foo/bar
那将被转成内部请求:
http://backend.example.com/bar
注:配置的时候,不需要被转发的请求,要配置在需要被转发的请求前面。

2、ProxyPassMatch:

语法:ProxyPassMatch [regex] !|url
这个实际上是url正则匹配,而不是简单的前缀匹配,匹配上的regex部分是会带到后端的url的,这个是与ProxyPass不同的。使用示例:

1)、ProxyPassMatch ^/images !

这个示例表示对/images的请求,都不会被转发。

2)、ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1

这个示例表示对所有gif图片的请求,都被会转到后端,如此时请求http://example.com/foo/bar.gif,那内部将会转换为这样的请求http://backend.example.com/foo/bar.gif。

3、ProxyPassReverse

语法:ProxyPassReverse [路径] url 
它一般和ProxyPass指令配合使用,此指令使Apache调整HTTP重定向应答中Location, Content-Location, URI头里的URL,这样可以避免在Apache作为反向代理使用时。后端服务器的HTTP重定向造成的绕过反向代理的问题。参看下面的示例:
ProxyPass /example http://www.example.com/
ProxyPassReverse /example http://www.example.com/
ProxyPassReverse的作用就是反向代理,如果没有加这样的反向代理设置的情况下,访问http://www.test.com /example/a,如果www.example.com对请求进行了redirect至http://www.example.com/b,那么,客户端就会绕过反向代理,进而直接访问http://www.example.com/example/b。如果设置了反向代理,则会在转交HTTP重定向应答到客户 端之前调整它为http://www.test.com/example/b,通过www.test.com主机转发到www.example.com主机,即客户端完全看不到www.example.com的身影,仿佛一直和www.test.com在通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值