2015-10-19 1 views
0

J'ai configuré mon httpd.conf dans apache pour pointer vers plusieurs sites en fonction des numéros de port demandés. Cette configuration fonctionne correctement lorsqu'elle est déployée dans Windows, mais lorsque je déplace la même configuration vers Linux, cela ne fonctionne pas, merci de nous aider.Plusieurs ports Apache liés

Ci-dessous l'extrait de ce code.

Listen 81 
Listen 82 

<VirtualHost *:81> 
    RewriteEngine on 
    RewriteCond %{HTTPS} on 
    RewriteRule ^((?!/services).)*$ http://%{HTTP_HOST}%{REQUEST_URI} 
    ServerAdmin [email protected] 
    ProxyRequests off 
    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 
    ProxyPreserveHost On 
    Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
    ProxyPass/balancer://mycluster/ stickysession=ROUTEID 
    <Proxy balancer://mycluster> 
     Order deny,allow 
     Allow from all 
     BalancerMember http://10.236.75.102:9765 route=AS1 loadfactor=100 timeout=600 Keepalive=On 
    </Proxy> 
    <Location /balancer-manager> 
     SetHandler balancer-manager 
     Order deny,allow 
     Allow from all 
<IfModule mod_headers.c> 
     SetEnvIf Origin (.*) AccessControlAllowOrigin=$1 
     Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin 
     Header set Access-Control-Allow-Credentials true 
</IfModule> 

    </Location> 
</VirtualHost> 

<VirtualHost *:82> 
    RewriteEngine on 
    RewriteCond %{HTTPS} on 
    RewriteRule ^((?!/services).)*$ http://%{HTTP_HOST}%{REQUEST_URI} 
    ServerAdmin [email protected] 
    ProxyRequests off 
    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 
    ProxyPreserveHost On 
    Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
    ProxyPass/balancer://mycluster/ stickysession=ROUTEID 
    <Proxy balancer://mycluster> 
     Order deny,allow 
     Allow from all 
     BalancerMember http://10.236.75.101:9767/carbon/ route=UES1 loadfactor=100 timeout=600 Keepalive=On 
    </Proxy> 
    <Location /balancer-manager> 
     SetHandler balancer-manager 
     Order deny,allow 
     Allow from all 
<IfModule mod_headers.c> 
     SetEnvIf Origin (.*) AccessControlAllowOrigin=$1 
     Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin 
     Header set Access-Control-Allow-Credentials true 
</IfModule> 

Répondre

0

Je trouve la réponse, et ci-dessous est la solution finale,

<VirtualHost *:81> 
     RewriteEngine on 
     RewriteCond %{HTTPS} on 
     RewriteRule ^((?!/services).)*$ http://%{HTTP_HOST}%{REQUEST_URI} 
     ServerAdmin [email protected] 
     ProxyRequests off 
     <Proxy *> 
       Order deny,allow 
       Allow from all 
     </Proxy> 
     ProxyPreserveHost On 
     Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
     ProxyPass/balancer://mycluster/ stickysession=ROUTEID 
     <Proxy balancer://mycluster> 
       Order deny,allow 
       Allow from all 
       BalancerMember http://10.236.75.102:9765 route=AS1 loadfactor=100 timeout=600 Keepalive=On 
     </Proxy> 
     <Location /balancer-manager> 
       SetHandler balancer-manager 
       Order deny,allow 
       Allow from all 
<IfModule mod_headers.c> 
     SetEnvIf Origin (.*) AccessControlAllowOrigin=$1 
     Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin 
     Header set Access-Control-Allow-Credentials true 
</IfModule> 
     </Location> 
</VirtualHost> 

<VirtualHost *:82> 
     RewriteEngine on 
     RewriteCond %{HTTPS} on 
     RewriteRule ^((?!/services).)*$ http://%{HTTP_HOST}%{REQUEST_URI} 
     ServerAdmin [email protected] 
     ProxyRequests off 
     <Proxy *> 
       Order deny,allow 
       Allow from all 
     </Proxy> 
ProxyPreserveHost On 
     Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
     ProxyPass/balancer://mycluster1/ stickysession=ROUTEID 
     <Proxy balancer://mycluster1> 
       Order deny,allow 
       Allow from all 
       BalancerMember http://10.236.75.101:9767/carbon route=UES1 loadfactor=100 timeout=600 Keepalive=On 
     </Proxy> 
     <Location /balancer-manager> 
       SetHandler balancer-manager 
       Order deny,allow 
       Allow from all 
<IfModule mod_headers.c> 
     SetEnvIf Origin (.*) AccessControlAllowOrigin=$1 
     Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin 
     Header set Access-Control-Allow-Credentials true 
</IfModule> 
     </Location> 
</VirtualHost> 

Une configuration similaire est également nécessaire dans httpd-ssl.conf

Il devrait y avoir plusieurs entrées pour Virtualhost comme :

<VirtualHost *:446> 

....... 

ProxyPreserveHost On 
     Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
     ProxyPass/balancer://mycluster1/ stickysession=ROUTEID 
     <Proxy balancer://mycluster1> 
       Order deny,allow 
       Allow from all 
       BalancerMember http://10.236.75.101:9767/carbon route=UES1 loadfactor=100 timeout=600 Keepalive=On 
     </Proxy> 
     <Location /balancer-manager> 
       SetHandler balancer-manager 
       Order deny,allow 
       allow from all 
       SSLRequireSSL 
     </Location>