• ubuntu 14.04+apache 反向代理设置


    第一步

    sudo a2enmod proxy
    sudo a2enmod proxy_http
    sudo a2enmod proxy_balancer

    第二步

    在ubuntu的apache里,每个网站的配置文件是放在单独的文件里,找到 sites-available 文件夹里对应的文件并修改,修改后的配置文件差不多是下面的样子。
    ServerName www.a.com
    DocumentRoot “/var/site/www/”
    ProxyRequests Off
    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>
    ProxyPass / http://host.com/
    ProxyPassReverse / http://host.com/

    ProxyRequests 是代理的类型,如果是 on 呢就表示正向代理,我们这里需要的是反向代理,就设置为off。ProxyPassReverse / http://host.com/  呢就表示把所有的来自根目录的请求都代理到 http://host.com/ 的根目录下。

    第三步

    重启 apache服务

    service apache restart

    这里面说一下

    ProxyPass与ProxyPassReverse及ProxyPassMatch的概述

    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.test.com/example/b。如果设置了反向代理,则会在转交HTTP重定向应答到客户 端之前调整它为http://www.test.com/example/a/b,即是在原请求之后追加上了redirect的路径。

  • 相关阅读:
    CI 搭建CMS框架
    java 对象
    JAVA 数组,(java核心技术 卷1)
    Android 点击事件,4种回调。
    andriod 中设置sdk升级代理服务器
    CI 自动操作日志
    CI 笔记 datagrid的调用,不支持多页面多次调用js
    CI 笔记 easyui 结合后,左侧导航跳转问题
    CI 笔记 数据库
    mysql索引提高查询速度
  • 原文地址:https://www.cnblogs.com/yangxiaocheng/p/4355724.html
Copyright © 2020-2023  润新知