2013-10-03 6 views
7

हम इसके पीछे 3 सदस्यों के साथ 1 loadbalancer है web1.website.com, web2.website.com और web3.website.comहैड्रोक्सी के साथ www.domain.com पर डोमेन.com को फिर से लिखना कैसे है?</p> <p>मुख्य संतुलन: www.website.com सदस्य:

वर्तमान में हम loadbalancer पर nginx का उपयोग कर रहे हैं, लेकिन हम इसे HAPROxy के साथ बदलना चाहते हैं।

server { 
    server_name domain.com; 
    listen 1.2.3.4:80; 

    rewrite ^(.*) http://www.domain.com$1 permanent; 
} 

मैं कैसे HAProxy के साथ इस का प्रबंधन कर सकते हैं:

Nginx निम्न पंक्ति के साथ www.domain.com पर बिना www (domain.com) डोमेन का पुनर्लेखन?

मेरे haproxy config:

frontend http 1.2.3.4:80 

    default_backend www_cluster 
    acl is_www hdr_end(host) -i www.domain.com 
    use_backend www_cluster if is_www 


backend www_cluster 

    balance roundrobin 
    cookie SERVERID insert nocache indirect 

    option httpchk HEAD/HTTP/1.0 
    option httpclose 
    option forwardfor 

    server web1 1.2.3.5:82 cookie WEB1 check 
    server web2 1.2.3.6:82 cookie WEB2 check 
    server web3 1.2.3.7:82 cookie WEB3 check 

TIA!

उत्तर

17

संशोधन frontend ब्लॉक:

frontend http 1.2.3.4:80 
    default_backend www_cluster 
    redirect prefix http://www.mydomain.com code 301 if { hdr(host) -i domain.com } 

स्रोत:

  1. Haproxy redirect www to non-www
  2. HAProxy 1.4 Manual
  3. व्यक्तिगत अनुभव
+0

मैं कैसे करने के लिए छिपाने 'सूचकांक। यूआरएल ओ से php' n haproxy – Nullpointer

1

HAProxy विन्यास मैनुअल जवाब यह सीधे:

Example: 

Append 'www.' prefix in front of all hosts not having it 

http-request redirect code 301 location  \ 
    http://www.%[hdr(host)]%[capture.req.uri] \ 
    unless { hdr_beg(host) -i www } 

यह redirect प्रविष्टि के अंतर्गत है:

+0

यह 'blog.example.com' को 'www.blog.example.com' पर रीडायरेक्ट करेगा। क्या किसी को पता है कि इससे कैसे बचें? – srigi

+0

मुझे लगता है कि आप 'जब तक {hdr_beg (होस्ट) -i www} का उपयोग नहीं कर सकते हैं या जब तक {hdr_beg (होस्ट) -i ब्लॉग} ' –

संबंधित मुद्दे