本帖最后由 mumubangditu 于 2014-11-15 07:41:29 编辑

解决方案 »

  1.   

    单台服务器 在nginx上配置对应的虚拟主机,具体可以查看nginx配置虚拟主机。
      

  2.   

    server2  172.192.22.02 ,server3  172.192.22.03  设置
    /music
    /video
    proxy 到 server1  172.192.22.01server1  172.192.22.01,server3  172.192.22.03 设置
    /article
    /photo
    proxy 到 server2  172.192.22.02server1  172.192.22.01,server2  172.192.22.02 设置
    /products
    /showroom
    proxy到 server3  172.192.22.03
      

  3.   


    你说的proxy设置,是哪一种软件?有在线教程吗?
      

  4.   


    不是内部局域网,是3个PUBLIC  iP ,可以在手机浏览器里直接打开 172.192.22.01/music  172.192.22.02/article  172.192.22.03/products,但是 www.mydomain.com/article/xxx 则显示 404 The requested URL /article was not found on this server,到底要怎么搞才能P通?我不会,求助。
      

  5.   

    你可以配置你的nginx,如果访问的不是/music目录的话让他rewrite到对应的服务器,三个服务器都设置以下rewrite
      

  6.   


    proxy已经接通了,但是速度好像很慢,帮忙看下配置是否有问题? 
    /etc/httpd/conf/httpd.conf In 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 In 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 In 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>还有一个新问题。为什么设置了proxy后,用PHP echo $_SERVER["SERVER_NAME"] 和 echo $_SERVER['HTTP_HOST'],都显示IP地址,而不是域名?不是我的 ServerName www.example.com:80 设置的是域名?
     如何设置才能显示域名? 谢谢。