首页 文章

apache反向代理配置

提问于
浏览
2

我正在尝试为一个应用程序配置反向代理 . 我在下面使用apache 2.2 web服务器是我的配置规则

ProxyRequests关闭

ProxyPreserveHost上

ProxyPass / app /(http://11.11.111.11:123/

ProxyPassReverse / app / http://11.11.111.11:123/

问题:当我点击我的本地服务器的网址时,例如myserver.co.in/app/第一页即将到来(应用程序登录页面) . 在该应用程序重定向到url myserver.co.in/home/index.html并且重定向失败之后 . 因为网址中缺少“/ app /”部分 .

任何人都可以帮我解决这个问题 . 提前致谢 .

2 回答

  • 0

    因为apache dosnt知道你想要一个不同的页面,你需要将这个虚拟主机的工作目录设置到你应用程序所在的目录 .

    例如,

    DocumentRoot "/www/example2"
    

    所以使用你的配置会

    <VirtualHost *:80>
        DocumentRoot "/www/example2"
        ProxyRequests off
        ProxyPreserveHost on
        ProxyPass /app/ (http://11.11.111.11:123/)
        ProxyPassReverse /app/ http://11.11.111.11:123/
        # Other directives here
    </VirtualHost>
    
  • 0

    您可以修改应用以添加 /app 前缀或使用 mod_proxy_html .

    以下引用自“When ProxyPass and ProxyPassReverse aren’t enough”,并进行了修改以适应您的要求 .

    简而言之,mod_proxy_html允许您重写html,javascript和css,以便URL可以干净地通过您的反向代理 . 这意味着后端应用程序响应

    <script src="/script/application.js" type="text/javascript"></script>
    

    mod_proxy_html会将其转换为

    <script src="/app/script/application.js" type="text/javascript"></script>
    

    要使其工作,请将以下内容添加到httpd.conf中

    ProxyPass /app/ (http://11.11.111.11:123/)
    ProxyPassReverse /app/ http://11.11.111.11:123/
    ProxyHTMLURLMap http://11.11.111.11:123/ /app/
    
    <Location /app/>
      ProxyHTMLEnable On
      ProxyPassReverse http://11.11.111.11:123/
      SetOutputFilter proxy-html
      ProxyHTMLURLMap / /app/
      ProxyHTMLURLMap /app /app
    </Location>
    

相关问题