У меня есть вторичная разработка сайт Wordpress. (Centos 6.6 x86, ЛАМПА), Так как размер сайта растет. (300 ГБ +). Теперь я делю его на 3 сервера.
домен: www.example.com
server1 46.192.22.01 /var/www/public_html
/music
/video
server2 46.192.22.02 /var/www/public_html
/article
/photo
server3 172.192.22.03 /var/www/public_html
/products
/showroom
3 дюйм/с уже установили в домене DNS. Я хочу, делают их кластером. пользовательский доступ мой сайт другим URL, апач выберет правильный сервер, которые сажают corrent файлы подкачки.
www.example.com/music/xxx mapping to server with 172.192.22.01
www.example.com/article/xxx mapping to server with 172.192.22.02
www.example.com/products/xxx mapping to server with 172.192.22.03
Теперь я использовал апачский proxypassreverse.
/etc/httpd/conf/httpd.conf
В server1
ServerName www.example.com:80
<VirtualHost *:80>
ServerName www.example.com
ServerAlias www.example.com
DocumentRoot /var/www/html
<directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</directory>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass /article http://46.192.22.02/article
ProxyPassReverse /article http://46.192.22.02/article
ProxyPass /photo http://46.192.22.02/photo
ProxyPassReverse /photo http://46.192.22.02/photo
ProxyPass /products http://46.192.22.03/products
ProxyPassReverse /products http://46.192.22.03/products
ProxyPass /showroom http://46.192.22.03/showroom
ProxyPassReverse /showroom http://46.192.22.03/showroom
</VirtualHost>
/etc/httpd/conf/httpd.conf
В server2
ServerName www.example.com:80
<VirtualHost *:80>
ServerName www.example.com
ServerAlias www.example.com
DocumentRoot /var/www/html
<directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</directory>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass /music http://46.192.22.01/music
ProxyPassReverse /music http://46.192.22.01/music
ProxyPass /video http://46.192.22.01/video
ProxyPassReverse /video http://46.192.22.01/video
ProxyPass /products http://46.192.22.03/products
ProxyPassReverse /products http://46.192.22.03/products
ProxyPass /showroom http://46.192.22.03/showroom
ProxyPassReverse /showroom http://46.192.22.03/showroom
</VirtualHost>
/etc/httpd/conf/httpd.conf
В server3
ServerName www.example.com:80
<VirtualHost *:80>
ServerName www.example.com
ServerAlias www.example.com
DocumentRoot /var/www/html
<directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</directory>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass /music http://46.192.22.01/music
ProxyPassReverse /music http://46.192.22.01/music
ProxyPass /video http://46.192.22.01/video
ProxyPassReverse /video http://46.192.22.01/video
ProxyPass /article http://46.192.22.02/article
ProxyPassReverse /article http://46.192.22.02/article
ProxyPass /photo http://46.192.22.02/photo
ProxyPassReverse /photo http://46.192.22.02/photo
</VirtualHost>
Теперь я могу открыть свой сайт с каждой папкой www.example.com/music/xxx www.example.com/music/article, www.example.com/music/products,
Но echo $_SERVER["SERVER_NAME"]
и echo $_SERVER['HTTP_HOST']
весь IP-адрес возврата. ServerName в httpd.conf кажется не работой. Где установка I неправильно?
Похоже, что отсутствует фрагмент прокси-балансера
. Согласно этой документации настройка балансировщика выглядит следующим образом:
ProxyPass /special-area http://special.example.com smax=5 max=10
ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
<Proxy balancer://mycluster>
BalancerMember ajp://1.2.3.4:8009
BalancerMember ajp://1.2.3.5:8009 loadfactor=20
# Less powerful server, don't send as many requests there,
BalancerMember ajp://1.2.3.6:8009 loadfactor=5
</Proxy>