Haproxy的ACL使用path_beg,Apache的ProxyPass删除路径的末尾

时间:2019-07-02 18:10:11

标签: apache proxy haproxy

我在本地计算机和使用apache的Web应用程序上安装了haproxy。我想要以下内容:我的主应用程序位于http://domain,副应用程序位于http://domain/sideapps/application1。我可以点击http://domain/sideapps/并看到apache默认页面,但是当我尝试转到http://domain/sideapps/application1时,我被重定向到http://domain/application1

我的haproxy.cfg和apache配置如下:

haproxy.cfg:

    frontend app_front
       bind *:80
       stats uri /haproxy?stats
       maxconn 500000

       bind *:443 ssl crt /etc/ssl/ssl.pem
       redirect scheme https if !{ ssl_fc }

       reqadd X-Forwarded-Proto:\ http

       errorfile 503 /etc/haproxy/errors/503-mycustom.http

       acl url_apps path_beg /sideapps
       acl main hdr(host) -i domain

       use_backend side_apps if main url_apps
       use_backend main_app if main



    backend side_apps
        reqrep ^([^\ ]*\ /)sideapps[/]?(.*)     \1\2
        balance roundrobin
        server servername 127.0.0.1:5000 check inter 5 fall 3 rise 2

    backend main_app
        balance roundrobin
        server servername 127.0.0.1:9000 check inter 5 fall 3 rise 2

apache.conf:

 LoadModule rewrite_module modules/mod_rewrite.so

 <VirtualHost *:80>
   ServerName domain/sideapps
   DocumentRoot "/"

   ProxyPass /application1/ http://appname:8000/application1/
   ProxyPassReverse /application1/ http://appname:8000/application1/


 </VirtualHost>


这是做path_beg的正确方法吗?我不确定如何让我的应用程序删除网址的“ / sideapps /”部分。任何帮助将不胜感激,谢谢

0 个答案:

没有答案